【发布时间】:2020-09-30 16:06:56
【问题描述】:
谁能帮助我如何从 VB6 进行 WebApi 调用。我发现很少但没有任何帮助。以下是Url https://samplewebsiteurl/EnterpriseParticipant,这是它期望的请求
{
"Client": "YYYA",
"Platforms" : [],
"ProgramIdentifier": "",
"MapToEnterpriseView": "true",
"ParticipantRequest": {
"FirstName" : "",
"LastName": "Test"
}
}
下面是我找到的 VB6 代码。我应该如何通过 VB6 传递请求来调用 WebApi?我需要使用任何参考资料吗?
Dim WinHttpReq As Object, status As String, response As String
On Error GoTo errorfound
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1" ;)
WinHttpReq.open "POST", url, False
WinHttpReq.send
【问题讨论】:
-
您的“找到”代码看起来像是笨拙地转换的 VBScript。但是 (a.) 你没有发送你的 JSON,并且 (b.) POST 通常期望
application/x-www-form-urlencoded用于 Content-Type 这意味着你必须首先以这种方式格式化有效负载。为此,您需要知道服务器期望的元素名称,执行 UrlEncoding 等。 -
当然服务器也可以接受原始 JSON,如果它会采用
application/json代替。 -
@Bob77 我发现很少,我是 VB6 的新手 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 =(如下所示)myMSXML.send YourPostDataString
-
@Bob77 你有可以帮助我的示例 VB6 代码吗?
-
该对象不适用于 API 调用,因为它通过 UrlMon/IE 缓存工作。无论如何,换马不会改变你需要骑行的路径。
标签: vb6