通过 VBA 卷曲(Maxmind)

Posted

技术标签:

【中文标题】通过 VBA 卷曲(Maxmind)【英文标题】:cURL via VBA (Maxmind) 【发布时间】:2014-12-23 21:14:59 【问题描述】:

我正在尝试在 VBA 中运行以下 cURL 请求(由 Maxmind 提供):

curl -u "user_id:license_key" \
    "https://geoip.maxmind.com/geoip/v2.1/city/me?pretty"

从其他示例中,我尝试了以下方法:

Sub maxmind_query()

Dim TargetURL As String
Dim HTTPReq As Object

TargetURL = "https://geoip.maxmind.com/geoip/v2.1/city/me"
Set HTTPReq = CreateObject("WinHttp.WinHttpRequest.5.1")
HTTPReq.Option(4) = 13056 '
HTTPReq.Open "PUT", TargetURL, False
HTTPReq.SetCredentials "XXXXX", "YYYYYYYY", 0
HTTPReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
HTTPReq.send ("test[status]=" & Forms!curl!Text0.Value & "&test2[status]=" & Text2.Value)
MsgBox (HTTPReq.responseText)

End Sub

'''XXXX is my user id, YYYY my license key, removed for obvious reasons!

HTTPReq.send 上的这个错误(需要运行时错误 424 对象)让我很困惑。

我对 cURL 一无所知,因此尽管进行了几天的研究和盲目尝试,但我仍然难以使用上述代码实现任何目标。

我只对 VBA 有经验,而且我所知道的都是自学的,所以要温柔....

如果有人能够分享他们的知识,我将不胜感激。

Maxmind 提供的更多信息:

http://dev.maxmind.com/geoip/geoip2/web-services/#Per-Service_URIs http://dev.maxmind.com/geoip/geoip2/web-services/#Command_Line_curl_Example

非常感谢!

PS。如果我将 URL 放在浏览器中,在消息框中输入用户名和密码,浏览器会返回所需的信息,所以我知道服务和我的凭据有效。我想我的代码还没有走那么远。

【问题讨论】:

鉴于您使用的是 VBA,最好使用MaxMind's Legacy API。使用 GeoIP2 API,您需要进行基本身份验证,然后解码 JSON 响应。 谢谢奥斯瓦尔德。这是我的第一种方法,但是这不允许 Maxmind 查询使用“me”字符串而不是特定的 IP 地址。 【参考方案1】:

得到它的工作,这是我的方法:

Sub Maxmind()

Dim MyRequest As Object

    Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
    MyRequest.Open "GET", _
    "https://geoip.maxmind.com/geoip/v2.1/city/me"

    MyRequest.SetCredentials "user", "password", 0

    ' Send Request.
    MyRequest.Send

    'And we get this response
    MsgBox MyRequest.ResponseText

End Sub

这主要是从这里复制过来的here 非常感谢以前的贡献者。

希望它对某人有所帮助!

【讨论】:

以上是关于通过 VBA 卷曲(Maxmind)的主要内容,如果未能解决你的问题,请参考以下文章

通过 Maxmind GeoLite2 Free 获取用户城市的本地化名称

sh 通过卷曲运行Selenium测试

MaxMind 的 locid 和 GeoNames id 之间是不是有任何映射?

通过网址或IP获取省份城市

Rails 3.2.3 GeoLocation 使用 MaxMind

maxmind free geoip DB返回错误的国家/地区