vb实现http协议
来源:互联网 发布:ram风险评估矩阵 编辑:程序博客网 时间:2024/05/17 01:34
vb实现http协议
2007-07-01 20:45
'''作者:何道德
'''网名:hedaode
'''网站:www.hedaode.cn/www.wo789.com
'''2007/07/1
'保持属性值的局部变量
Private mvarstrUrl As String '局部复制
'保持属性值的局部变量
Private mvarstrFileFiled As String '局部复制
Private mvarstrTextFiled As String '局部复制
Public Host As String
'保持属性值的局部变量
Public Function RequestData() As Byte()
Dim i As Long
Dim PostByte() As Byte '要发送的数据包
Dim headByte() As Byte '请求头域
Dim LastByte() As Byte 'multiPart/form数据包结束标记
Dim strFileByte() As Byte '文件属性
Dim fileByte() As Byte '文件体
Dim newLine() As Byte '回车换行符号
Dim strHeader As String
Dim strPostData As String
Dim boundary As String
Dim path As String
Dim textArr, fileArr, tArr, fArr
Host = Replace(strUrl, "http://", "")
i = InStr(Host, "/")
If i = 0 Then
path = "/"
Else
path = Mid(Host, i, Len(Host)) '获取资源路径
End If
Host = Replace(Host, path, "") '获取主机名
boundary = "--hedaode--"
StrToByte vbCrLf, newLine
If strTextFiled = "" And strFileFiled = "" Then
'不发送任何数据
strHeader = "GET " + path + " HTTP/1.1" + vbCrLf
strHeader = strHeader + "Accept: */*" + vbCrLf
strHeader = strHeader + "Accept-Language: zh-cn" + vbCrLf
strHeader = strHeader + "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" + vbCrLf
strHeader = strHeader + "Host: " + Host + vbCrLf
If Cookies <> "" Then
strHeader = strHeader + "Cookie: " + Cookies + vbCrLf
End If
strHeader = strHeader + vbCrLf
StrToByte strHeader, PostByte
RequestData = PostByte
ElseIf strTextFiled <> "" And strFileFiled = "" Then
'只发送文本数据
strHeader = "POST " + path + " HTTP/1.1" + vbCrLf
strHeader = strHeader + "Accept: */*" + vbCrLf
strHeader = strHeader + "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" + vbCrLf
If Cookies <> "" Then
strHeader = strHeader + "Cookie: " + Cookies + vbCrLf
End If
strHeader = strHeader + "Host: " + Host + vbCrLf
strHeader = strHeader + "Content-Type: application/x-www-form-urlencoded" + vbCrLf
strHeader = strHeader + "Content-Length: " & strLen(strTextFiled) & vbCrLf & vbCrLf
strHeader = strHeader + strTextFiled
StrToByte strHeader, PostByte
RequestData = PostByte
ElseIf strTextFiled = "" And strFileFiled <> "" Then
'只发送文件数据
fileArr = Split(strFileFiled, "&")
For i = 0 To UBound(fileArr)
fArr = Split(fileArr(i), "=")
strPostData = "--" + boundary + vbCrLf
strPostData = strPostData + "Content-Disposition: form-data; name=""" + fArr(0) + """; filename=""" + fArr(1) + """" + vbCrLf
strPostData = strPostData + "Content-Type: image/jpeg" + vbCrLf + vbCrLf
StrToByte strPostData, PostByte
Open fArr(1) For Binary As #1
ReDim fileByte(LOF(1) - 1)
Get #1, , fileByte
Close #1
PostByte = UniteArr(PostByte, fileByte)
PostByte = UniteArr(PostByte, newLine)
Next
StrToByte "--" + boundary + "--" + vbCrLf, LastByte()
PostByte = UniteArr(PostByte, LastByte)
strHeader = "POST " + path + " HTTP/1.1" + vbCrLf
strHeader = strHeader + "Accept: */*" + vbCrLf
strHeader = strHeader + "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" + vbCrLf
strHeader = strHeader + "Content-Type: multipart/form-data; boundary=" + boundary + vbCrLf
strHeader = strHeader + "Content-Length: " & (UBound(PostByte) + 1) & vbCrLf
strHeader = strHeader + "Host: " + Host + vbCrLf
If Cookies <> "" Then
strHeader = strHeader + "Cookie: " + Cookies + vbCrLf
End If
strHeader = strHeader + vbCrLf
StrToByte strHeader, headByte
PostByte = UniteArr(headByte, PostByte)
RequestData = PostByte
Else
'发送文本和文件数据
textArr = Split(strTextFiled, "&")
fileArr = Split(strFileFiled, "&")
For i = 0 To UBound(textArr)
tArr = Split(textArr(i), "=")
strPostData = strPostData + "--" + boundary + vbCrLf
strPostData = strPostData + "Content-Disposition: form-data; name=""" + tArr(0) + """" + vbCrLf + vbCrLf + tArr(1) + vbCrLf
Next
StrToByte strPostData, PostByte()
For i = 0 To UBound(fileArr)
fArr = Split(fileArr(i), "=")
strPostData = "--" + boundary + vbCrLf
strPostData = strPostData + "Content-Disposition: form-data; name=""" + fArr(0) + """; filename=""" + fArr(1) + """" + vbCrLf
strPostData = strPostData + "Content-Type: image/jpeg" + vbCrLf + vbCrLf
StrToByte strPostData, strFileByte
Open fArr(1) For Binary As #1
ReDim fileByte(LOF(1) - 1)
Get #1, , fileByte
Close #1
PostByte = UniteArr(PostByte, strFileByte)
PostByte = UniteArr(PostByte, fileByte)
PostByte = UniteArr(PostByte, newLine)
Next
StrToByte "--" + boundary + "--" + vbCrLf, LastByte()
PostByte = UniteArr(PostByte, LastByte)
strHeader = "POST " + path + " HTTP/1.1" + vbCrLf
strHeader = strHeader + "Accept: */*" + vbCrLf
strHeader = strHeader + "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" + vbCrLf
strHeader = strHeader + "Content-Type: multipart/form-data; boundary=" + boundary + vbCrLf
strHeader = strHeader + "Content-Length: " & (UBound(PostByte) + 1) & vbCrLf
strHeader = strHeader + "Host: " + Host + vbCrLf
If Cookies <> "" Then
strHeader = strHeader + "Cookie: " + Cookies + vbCrLf
End If
strHeader = strHeader + vbCrLf
StrToByte strHeader, headByte
PostByte = UniteArr(headByte, PostByte)
RequestData = PostByte
End If
End Function
Public Property Let strTextFiled(ByVal vData As String)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.strTextFiled = 5
mvarstrTextFiled = vData
End Property
Public Property Get strTextFiled() As String
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.strTextFiled
strTextFiled = mvarstrTextFiled
End Property
Public Property Let strFileFiled(ByVal vData As String)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.strFileFiled = 5
mvarstrFileFiled = vData
End Property
Public Property Get strFileFiled() As String
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.strFileFiled
strFileFiled = mvarstrFileFiled
End Property
Public Property Let strUrl(ByVal vData As String)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.strUrl = 5
mvarstrUrl = vData
End Property
Public Property Get strUrl() As String
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.strUrl
strUrl = mvarstrUrl
End Property
- vb实现http协议
- vb实现http协议
- VB通过WINSOCK发送HTTP协议
- [VB.NET]通过http协议下载文件
- HTTP协议(下):HTTP协议实现通信
- http协议上传实现
- http协议实现上传
- telnet 实现HTTP协议
- HTTP传输协议实现
- C++ 实现http 协议
- http协议上传实现
- telnet 实现HTTP协议
- http协议上传实现
- NioSocket实现HTTP协议
- HTTP 协议实现
- 自己实现HTTP协议
- java实现Http协议
- 自己动手实现HTTP协议
- python socket之进程间通信
- 深刻理解Oracle数据库的启动和关闭
- 净重21克的爱情
- ABAP Call Vbscript Program…
- Tree命令
- vb实现http协议
- sql查重复记录
- 十步让你成为一名优秀的Web开发人员
- 标准三层架构注简单册代码
- 嵌入式还是模式识别?
- jfreechart如何生成热区,usemap
- 按下鼠标绘制连续的线
- N条直线相交交点、分割的最多平面问题
- 2008年下半年电子商务设计师试题