Я пытаюсь выполнить следующий запрос CURL (как это предусмотрено Maxmind) в VBA:Curl через VBA (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, вам может быть лучше использовать [API MaxMind Legacy API] (http://dev.maxmind.com/geoip/legacy/web-services/). С API GeoIP2 вам необходимо выполнить базовую аутентификацию и затем декодировать ответ JSON. –
Спасибо, oschwald. Это был мой первый подход, однако это не позволяет запросу Maxmind использовать строку «me» вместо определенного IP-адреса. – user2048265