首页 > 解决方案 > 如何对 Rest API 进行异步调用并从 VBA 传递编码的 HTTP 内容?

问题描述

我正在使用以下代码从 API 获取响应,但是,我只得到一个空白响应。有人可以在这里帮忙吗

Dim oDic As New Dictionary
Dim oRequest As New MSXML2.XMLHTTP
' Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")

oRequest.Open "POST", "https://neutrinoapi.com/phone-validate", True

oRequest.SetRequestHeader "user-id", "haissk"
oRequest.SetRequestHeader "api-key", "key"
oRequest.SetRequestHeader "number", "1234567890"

oRequest.Send 

While oRequest.readyState <> 4
    DoEvents
Wend

MsgBox oRequest.ResponseText

我也试过

oRequest.Send EncodeBase64("user-id=haissk&api-key=key=1234567890")

当我从 C# 尝试相同的操作时,它就可以正常工作。下面是 C# 代码

using (var client = new HttpClient())
{
    var req = new List<KeyValuePair<string, string>>();
    req.Add(new KeyValuePair<string, string>("user-id", "haissk"));
    req.Add(new KeyValuePair<string, string>("api-key", "key"));
    req.Add(new KeyValuePair<string, string>("number", "1234567890"));

    var content = new FormUrlEncodedContent(req);
    var response = await client.PostAsync("https://neutrinoapi.com/phone-validate", content);
    var responseStr = await response.Content.ReadAsStringAsync();

    JObject result = JObject.Parse(responseStr);
}

标签: vbaxmlhttprequest

解决方案


推荐阅读