我很难过,为什么这不起作用似乎找不到任何问题。

这是代码。

Public Const MULTIPART_BOUNDARY = "speed"
Function getBalance() As String
Dim sEntityBody As String
Dim postBody() As Byte
Dim username As String
Dim password As String

username = CStr(frmMain.txtUser.text)
password = CStr(frmMain.txtPass.text)

sEntityBody = "--" & MULTIPART_BOUNDARY & vbCrLf
sEntityBody = sEntityBody & "Content-Disposition: form-data; name=""function""" & vbCrLf & vbCrLf & "balance" & vbCrLf
sEntityBody = sEntityBody & "--" & MULTIPART_BOUNDARY & vbCrLf
sEntityBody = sEntityBody & "Content-Disposition: form-data; name=""username""" & vbCrLf & vbCrLf & username & vbCrLf
sEntityBody = sEntityBody & "--" & MULTIPART_BOUNDARY & vbCrLf
sEntityBody = sEntityBody & "Content-Disposition: form-data; name=""password""" & vbCrLf & vbCrLf & password & vbCrLf
sEntityBody = sEntityBody & "--" & MULTIPART_BOUNDARY & "--" & vbCrLf

postBody = StrConv(sEntityBody, vbFromUnicode)

Dim xhr As Object
Set xhr = CreateObject("WinHttp.WinHttpRequest.5.1")
xhr.Option(WinHttpRequestOption_EnableRedirects) = False
If xhr Is Nothing Then Set xhr = CreateObject("WinHttp.WinHttpRequest")
If xhr Is Nothing Then Set xhr = CreateObject("MSXML2.ServerXMLHTTP")
If xhr Is Nothing Then Set xhr = CreateObject("Microsoft.XMLHTTP")
xhr.open "POST", "http://poster.example.com", False

xhr.setRequestHeader "User-Agent", "Alalala"
xhr.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & MULTIPART_BOUNDARY
xhr.setRequestHeader "Content-Length", Len(sEntityBody)
xhr.send "" + sEntityBody 'postBody 'URLEncode(sEntityBody)

    If xhr.Status = 200 Then
        getBalance = xhr.responseText
    Else
        frmMain.addToChatbox "Failed at getting response from blah ErrCode:" & xhr.Status
    End If
End Function

现在,下面有效(尽管这只是HTML表格)。

<form 
 method="post" 
 action="http://poster.example.com/" 
 enctype="multipart/form-data">
 <input type="hidden" name="function" value="balance">
 <input type="text"   name="username" value="blah">
 <input type="text"   name="password" value="blah">
 <input type="submit" value="Send">
</form>

这是一只小包的嗅探。 (更改主机等之后)

post/http/1.1..user-agent:alalala..content-type:multipart/form-data;边界=速度..包含长度:233..poccept: /..主机:poster.example.com...connection:keep-alive ....- speed..content-dispostion:form-data; name =“函数” .... balance ..- speed..content-dispostion:form-data; name =“用户名” .... blah ..- speed..content-dispostion:form-data; name =“密码” .... blah ..- speed-- ..

响应是空的

http/1.1 200 ok ..日期:thu,2010年10月7日20:31:20 GMT..Server:apache..concache..content-Length:0..connection:close..coll .. colled..content-type:text/html; charset = UTF-8 ....

ps>不必发送带有值发送的提交按钮,因此如果有人想知道,那就不是。可能是,我从嗅探中注意到的是,它会随着一个数据包和Firefox/Chrome将其发送为2个单独的数据包时发送标题 +帖子数据(上传数据)。

谢谢

有帮助吗?

解决方案

拼写错误 内容偏见 必须 内容分解 是的,感谢我已经受苦了6个?也许7个小时。

最后解决了

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top