【发布时间】:2010-11-02 21:05:52
【问题描述】:
如何使用 VB6 向远程 URL 发送 POST 请求?
【问题讨论】:
-
还有人用VB6? :o
标签: vb6
如何使用 VB6 向远程 URL 发送 POST 请求?
【问题讨论】:
标签: vb6
有很多方法可以解决这个问题。您可以使用 WinInet API、WinHTTP API、WinHTTPRequest 或 XMLHTTPRequest。我更喜欢较低级别的 Winsock,你可以在这里阅读: http://www.vbforums.com/showthread.php?t=334645 。在我看来,Winsock 有点复杂,但功能更强大。如果你想做简单而甜蜜的事情,XML HTTP Request 是最好的选择,我也在 javascript 中使用它。尝试类似:
Set myMSXML = New MSXML.XMLHTTPRequest
myMSXML.open "POST", URL, True
myMSXML.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
myMSXML.setRequestHeader "User-Agent", "Firefox 3.6.4"
myMSXML.OnReadyStateChange = (Shown below)
myMSXML.send YourPostDataString
还有 OnReadyStateChange 函数:
Dim HttpResponse As String
HttpResponse = myMSXML.responseText
如果你发现我的代码不工作,或者你有点困惑,对不起,我现在对 VB 有点生疏了。您可以在此处查看有关 XMLHTTPRequest 的 Microsoft 官方文档:http://msdn.microsoft.com/en-us/library/ms759148%28VS.85%29.aspx
【讨论】:
我们也可以这样做
Set myMSXML = CreateObject("Microsoft.XmlHttp")
myMSXML.open "POST", "http://....", False
myMSXML.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
myMSXML.setRequestHeader "User-Agent", "Firefox 3.6.4"
myMSXML.send "param1=value2¶m2=value2"
MsgBox myMSXML.responseText
您可以查看更多参考资料http://smartreferences.blogspot.in
【讨论】:
对于我的 API 仅适用于“Content-Type”标头中的“application/json”。 这是我的代码:
textJSON = "{ ""field1"":""value1"", ""field2"":""value2""}"
Set myMSXML = CreateObject("Microsoft.XmlHttp")
myMSXML.Open "POST", "http://...", False
myMSXML.setRequestHeader "Content-Type", "application/json"
myMSXML.setRequestHeader "User-Agent", "Firefox 3.6.4"
myMSXML.send textJSON
MsgBox myMSXML.responseText
【讨论】: