vba - 如何对 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);
}
解决方案
推荐阅读
- python - Hyperopt timeout?
- windows - awk syntax in Windows
- elasticsearch - Facing some problem while trying to create the query in lambda expression in C# with NEST in elastic search, using Nest 6.0
- java - Trying to create a method that clears all the nodes in a linked list in java
- android - 找不到资源 ID - Android Gradle Plugin 3.4.0
- jquery - HTML、CSS 和 JQuery 中的另一个图像库
- php - 如何将 php 变量作为 wget url 传递?
- clojure - clojure:在地图向量中搜索
- c - Valgrind 显示错误调用 pr_set_ptracer,vgdb 可能会阻塞
- reactjs - 无法读取未定义的属性“地图”,错误