Sub Suggest()
Dim http
Dim Json As Object
Dim SECRET_KEY
Dim APi_KEY
APi_KEY = ""
SECRET_KEY = ""
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
Dim items As New Collection, myitem As New Dictionary, cell As Variant
ad = Cells(1, 1).Value
Debug.Print (Cells(1, 1).Value)
myitem("source") = ad
items.Add myitem
Set myitem = Nothing
req = ConvertToJson(items, Whitespace:=2)
Sheets(1).Range("A4").Value = req
Url = "https://dadata.ru/api/v2/clean/address"
http.Open "POST", Url, False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Token " & APi_KEY
http.setRequestHeader "X-Secret", SECRET_KEY
http.send req
Cells(3, 3) = http.responseText
End Sub
Добрый день. Идея такая, мы считываем из ячейки А1 адрес, отправляем его на сайт, он там его корректирует и мы его получаем. Но видимо при отправке данные доходят не верно или их формат получается не верным и ответ приходит с пустыми значениями. Сервер принимает данные в формате json. Буду благодарен за любую подсказку.
mega31, добрый день. Знакомый сервис, используйте код ниже:
Код
s = "[[""Новослободская 20""]]"
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "https://dadata.ru/api/v2/clean/address"
http.Open "POST", URL, False
http.SetRequestHeader "Accept", "application/json; charset=utf-8"
http.SetRequestHeader "Authorization", "Token " & token
http.SetRequestHeader "X-Secret", xkey
http.send (s)
Так же можете присмотреться к адресу https://dadata.ru/api/v2/suggest/address, который возвращает список предполагаемых адресов(с вашей строкой запроса прокатит).
Jungl, Большое спасибо, действительно работает. Есть еще один вопрос. Если я хочу, чтобы на отправку шло несколько адресов из текстового файла или ячеек, то можно ли как то реализовать это? Насколько я понял, тогда то и происходит ошибка в кодировках.