Как сделать асинхронный вызов Rest API и передать закодированный HTTP-контент из VBA? - PullRequest
0 голосов
/ 07 ноября 2018

Я использую приведенный ниже код для получения ответа от 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);
}
...