Ваши комментарии

а зачем улучшать?

есть по этому адресу квартира - квартиру и показывать.

ну она мне например не нужна.

я ее буду очищать - выдеру только "result":"г Москва, ул Цандера, д 7, кв 443"


было бы например не плохо если указать Accept", "application/text" - возращать только результ - в данном случае - 129075, г Москва, ул Цандера, д 7, кв 443 - т.е. строку чистую.


а то приходится делать разбор + разные проверки

а можно сделать чтоб просто возвращалась строка?

задать Accept", "application/text"

macro FixAddrDadata(addr: string): string

var ob = CreateObject ("rsax","TRsAxServer","RsAxServer",True).CreateComObject("MSXML2.ServerXMLHTTP");
//addr=OemToUTF(addr);
ob.open("POST","https://dadata.ru/api/v2/clean/address?",false);
//ob.SetProxy(2, "192.168.0.5:3128");
ob.SetTimeouts(3000, 3000, 3000, 3000);
ob.setRequestHeader("Content-Type", "application/json");
ob.setRequestHeader("Accept", "application/json");
ob.setRequestHeader("Authorization", "Token 0834ffd6333884837d3917a417ef7895d86cb43e");
ob.setRequestHeader("X-Secret", "443d18b53863340a7ce9c325eb0416e02b6b4929");
ob.send("[\""+addr+"\"]");
var r=ob.ResponseText;
//r=UTFToOem(r);
return(r);
OnError
Return -1;
end;

ВСЕ СПАСИБО! ПОЛУЧИЛОСЬ ))

мне нужно исправить адреса в базе клиентской.

нужна функция - на вход который я передаю адрес строкой - на выходе получаю правильный адрес в виде строки.

и в дальнейшем использовать также - операционист вводит адрес, через ваш сервис получаем верный адрес и в базу записываем


сейчас немного поправила код:

macro FixAddrDadata(aStr: string): string

var ob = CreateObject ("rsax","TRsAxServer","RsAxServer", true).CreateComObject("WinHttp.WinHttpRequest.5.1");
ob.open("POST","https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address?query=╨ж╨░╨╜╨┤╨╡╤А╨░%207",false);
ob.setRequestHeader("Content-Type", "application/json");
ob.setRequestHeader("Accept", "application/json");
ob.setRequestHeader("Authorization", "Token 0834ffd6333884837d3917a417ef7895d86cb43e");
//ob.setRequestHeader("query", "╨ж╨░╨╜╨┤╨╡╤А╨░%207");
//ob.SetProxy(2, "192.168.0.5:3128");
ob.SetTimeouts(3000, 3000, 3000, 3000);
ob.send();
var s=ob.ResponseText;
return(s);
OnError
Return -1;
end;

стало возвращать:

{"suggestions":[]}

хотя переставила - сначала open - тогда приходит ответ что

{"detail":"You should provide X-Secret header with your secret key"}




Сервис поддержки клиентов работает на платформе UserEcho