Post VB6使用内容类型表单数据发布到服务器不';我没有收到参数
我试图使用Content Type=表单数据向服务器发出post请求。这是在VB6中实现的(是的,visual Basic 6)。 请求调用成功,但服务器无法获取参数 为了简单起见,我正在httpbin.org上进行测试Post VB6使用内容类型表单数据发布到服务器不';我没有收到参数,post,request,vb6,xmlhttprequest,Post,Request,Vb6,Xmlhttprequest,我试图使用Content Type=表单数据向服务器发出post请求。这是在VB6中实现的(是的,visual Basic 6)。 请求调用成功,但服务器无法获取参数 为了简单起见,我正在httpbin.org上进行测试 Dim msxml As msxml.XMLHTTPRequest Dim data As String Dim boundary As String Set msxml = New msxml.XMLHTTPRequest boundary = "----WebKitF
Dim msxml As msxml.XMLHTTPRequest
Dim data As String
Dim boundary As String
Set msxml = New msxml.XMLHTTPRequest
boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW"
msxml.Open "POST", "http://httpbin.org/post", False
msxml.setRequestHeader "Content-Type", "multipart/form-data;Charset=UTF-8; boundary=" & boundary
data = ""
data = data & boundary & vbCrLf
data = data & "Content-Disposition: form-data; name=""param1""" & vbCrLf
data = data & vbCrLf
data = data & "data for param1" & vbCrLf
data = data & boundary & vbCrLf
data = data & "Content-Disposition: form-data; name=""param2""" & vbCrLf
data = data & vbCrLf
data = data & "other data for param2" & vbCrLf
data = data & boundary & "--"
msxml.Send data
Debug.Print msxml.responseText
得到的答复是:
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "es",
"Cache-Control": "no-cache",
"Connection": "close",
"Content-Length": "216",
"Content-Type": "multipart/form-data;Charset=UTF-8; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
"Host": "httpbin.org",
"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0E)"
},
"json": null,
"origin": "181.45.250.169",
"url": "http://httpbin.org/post"
}
如您所见,“form”属性为空
预期的答复:
"form": {
"param1": "data for param1",
"param2": "other data for param2"
},
我已经尝试过WinHttpRequest和其他程序,结果总是一样的
有什么建议吗?在这行后面
data = data & "other data for param2" & vbCrLf
msxml.Send data
在这条线之前
data = data & "other data for param2" & vbCrLf
msxml.Send data
试一试推杆
data = data & boundary & "--"
以语法有效的方式结束窗体的正文。如何更改:
boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW"
致:
。。。取而代之,然后在需要它的地方,在这个值前面加上“-”(而不是“----”)
“-”前缀不属于此处,您有两个前缀在一行中:
msxml.setRequestHeader "Content-Type", "multipart/form-data;Charset=UTF-8; boundary=" & boundary
通过将“-”加倍,你似乎把自己搞糊涂了。连字符不是边界值的一部分。感谢所有帮助我的人 除了边界中的错误之外,还有一件我尝试过但没有成功的事情,因为我缺少参数的内容类型 添加内容类型和正确的边界字符串后,post工作
Dim msxml As msxml.XMLHTTPRequest
Dim data As String
Dim boundary As String
Set msxml = New msxml.XMLHTTPRequest
boundary = "MyCustomBoundary7MA4YWxkTrZu0gW"
msxml.Open "POST", "http://httpbin.org/post", False
msxml.setRequestHeader "Content-Type", "multipart/form-data;Charset=UTF-8; boundary=" & boundary
data = ""
data = data & "--" & boundary & vbCrLf
data = data & "Content-Disposition: form-data; name=""param1""" & vbCrLf
data = data & "Content-Type: text/plain" & vbCrLf & vbCrLf
data = data & "data for param1" & vbCrLf
data = data & "--" & boundary & vbCrLf
data = data & "Content-Disposition: form-data; name=""param2""" & vbCrLf
data = data & "Content-Type: text/plain" & vbCrLf & vbCrLf
data = data & "other data for param2" & vbCrLf
data = data & "--" & boundary & "--"
msxml.Send data
Debug.Print msxml.responseText
为什么在一个问题上贴标签?预期的回答是什么?vba标签,我的错误。我添加了预期的响应。你的边界搞错了。检查它是如何正确完成的。