如何通过inet1或webbrowser1向网页POST数据

challenge1 2009-09-04 01:26:25
如何通过inet1或webbrowser1的
Content-Type: multipart/form-data; 方式向网页POST数据


POST数据分
application/x-www-form-urlencoded

Content-Type: multipart/form-data
两种方式
application/x-www-form-urlencoded方式本人巳经知道了
现在我想要知道multipart/form-data方式,有谁能帮我写一个实例吗?
...全文
220 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
feelsyt 2011-12-04
  • 打赏
  • 举报
回复
强人这都行
challenge1 2009-09-05
  • 打赏
  • 举报
回复
对了,不需要base64编码,你就给我写出一段关健的代码来,好吗?
challenge1 2009-09-05
  • 打赏
  • 举报
回复
sub command1_click()
postDataStr = ""
HeadersStr = "Accept: application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/QVOD, application/QVOD, */*" & vbCrLf
HeadersStr = HeadersStr & "Accept-Language: zh-cn" & vbCrLf
HeadersStr = HeadersStr & "Content-Type: multipart/form-data; boundary=---------------------------7d9257d1bd04ba"
HeadersStr = HeadersStr & "Accept-Encoding: gzip, deflate" & vbCrLf
HeadersStr = HeadersStr & "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"

postDataStr = "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""action""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "publish/publishAction" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.ca""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "50003494" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.i""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "NWY1ZTc1NmYzYzc3YmQ2NTEwYTRiNzZmZDkyNGI2ZjggZGMxYWNhODZjNzE0YjgyNDY4MDc4MWYwOTY0N2JmOTQgMTI1MjExNzU3OTg3Ng==" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.cat""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "20000:109227" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.e""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "false" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.isn""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "false" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""catName""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "十字绣套件/成品" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""selPPay""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "false" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.sp""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "0" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.isb""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "false" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.a""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "a" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.pa""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "1" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.b""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "10" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.secur""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "1" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""imTbToken""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "e5a351e81e37#6913888261463400" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""event_submit_do_re_select_category""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "编辑类目" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""cp_20000""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "20000:109227" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""at""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "2" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.q""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "1" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""image_pos""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "1" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""state""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "0" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.aut""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "false" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.sh""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "2" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.isa""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "false" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.se""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "0" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.sec""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "0" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.secu""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "0" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.isop""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "false" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.du""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "7" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e" & vbCrLf
postDataStr = postDataStr & "Content-Disposition: form-data; name=""_fma.pu._0.r""" & vbCrLf & vbCrLf
postDataStr = postDataStr & "A" & vbCrLf
postDataStr = postDataStr & "-----------------------------7d93d8646045e--"

'postDataStr = URLEncode(postDataStr)
Dim aByte() As Byte
PackBytes aByte(), URLEncode(postDataStr)
WebBrowser1.Navigate "http://sell.taobao.com/auction/publish/publish.htm", 0, "", aByte, HeadersStr

end SUB

Private Sub PackBytes(ByRef ByteArray() As Byte, ByVal PostData As String)
Dim iNewBytes As Long, mPostData As String
mPostData = PostData
iNewBytes = Len(mPostData) - 1 ' Get rid of the null termination
If iNewBytes < 0 Then
Exit Sub
End If
ReDim ByteArray(iNewBytes)
For i = 0 To iNewBytes
ch = Mid(mPostData, i + 1, 1)
If ch = Space(1) Then
ch = "+"
End If 'Debug.Print ch, Asc(ch)
ByteArray(i) = Asc(ch)
Next
End Sub
上面代码是我的方法,不过,POST后那个vbCrLf 变为A了
它是通过PackBytes将 Space(1)转为 + 号
谁能说一下将vbCrLf变为什么


---------------------------------------------------------------------
人脑潜能开发,潜能开发音乐下载 潜能21网 www.qn21.com
threenewbee 2009-09-04
  • 打赏
  • 举报
回复
自己抓包看下,关键是数据体用base64编码下。

不过看上去您好像都知道了。那么我就不知道您哪里不知道了。本来就是很easy的问题。
threenewbee 2009-09-04
  • 打赏
  • 举报
回复
POST http://xxx.xxx HTTP/1.1
Connection: Keep-Alive
Content-Length: 458
Content-Type: multipart/form-data; boundary=-----------------------------7d6bb34502ce[上传方式,边界]
Accept: */*
Expect: 100-continue
Host: localhost
Referer: http://mtv.1ting.com/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

-------------------------------7d6bb34502ce[边界这里开头多了2个中划线]
Content-Disposition: form-data; name="key1[表单域名]"

ffffffffffffffffffffffffffffffffffffffffffffffffffffff[表单域值]
-------------------------------7d6bb34502ce[边界这里开头多了2个中划线]
Content-Disposition: form-data; name="file[文件类型表单域名]"; filename="d:\1.rar[文件名]"
Content-Type: application/x-msdownload[文件类型]

[文件内容,base64编码]
-------------------------------7d6bb34502ce--[最后一个边界,开头和结尾都多了2个中划线]
threenewbee 2009-09-04
  • 打赏
  • 举报
回复
multipart/form-data就是MIME啦
主要是BASE64编码数据,参看下RFC文档,好简单的。
challenge1 2009-09-04
  • 打赏
  • 举报
回复
我说的那个绝对不是base64编码,base64编码我也知道,你的回答真的是牛头不对马嘴

请所有回答的人都写出一小段代码,本人分析能力是非常强的,只要给出关健部位,我绝对能看得懂,
给出关健部位代码,我绝对给他加分

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧