Имя: Пароль:
1C
1С v8
Геокодинг Google Maps
0 OnePrg
 
12.11.22
13:48
Нужно по адресу получить координаты

https://maps.googleapis.com/maps/api/geocode/json?address=Москва&language=ru&key=хххххххххххххххххххххххххх
такая строка переданная в браузер возвращает JSON

HTTPСоединение = Новый HTTPСоединение("maps.googleapis.com", ,,,,,Новый ЗащищенноеСоединениеOpenSSL());
HTTPЗапрос = Новый HTTPЗапрос("maps/api/geocode/json?address=Москва&language=ru&key=хххххххххххххххххххххххххх");
Результат =  HTTPСоединение.Получить(HTTPЗапрос);
такой код в 1С тоже возвращает JSON

но хочу переделать, чтобы из 1С отправлялась не строка, а через JSON

СтруктураJSON = Новый Структура;
СтруктураJSON.Вставить("address",  "Москва");
СтруктураJSON.Вставить("language", "ru");
СтруктураJSON.Вставить("key",        "ххххххххххххххххххх");
ЗаписьJSON  = новый ЗаписьJSON();
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, СтруктураJSON);
СтрокаJSON  = ЗаписьJSON.Закрыть();         
    
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос = Новый HTTPЗапрос("maps/api/geocode",Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);
HTTPСоединение = Новый HTTPСоединение("maps.googleapis.com", ,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Результат =  HTTPСоединение.Получить(HTTPЗапрос);

Возвращает 404
1 Смотрящий
 
12.11.22
13:53
maps/api/geocode/json?address=Москва&language=ru&key=хххххххххххххххххххххххххх"
maps/api/geocode/????
2 OnePrg
 
12.11.22
14:00
(1) точно
втупил
спасибо
3 OnePrg
 
12.11.22
14:03
СтруктураJSON = Новый Структура;
СтруктураJSON.Вставить("address",  "Москва");
СтруктураJSON.Вставить("language", "ru");
СтруктураJSON.Вставить("key",        "ххххххххххххххххххх");
ЗаписьJSON  = новый ЗаписьJSON();
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, СтруктураJSON);
СтрокаJSON  = ЗаписьJSON.Закрыть();        
    
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "application/json");
HTTPЗапрос = Новый HTTPЗапрос("maps/api/geocode/json",Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);
HTTPСоединение = Новый HTTPСоединение("maps.googleapis.com", ,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Результат =  HTTPСоединение.Получить(HTTPЗапрос);

Возвращает 400
4 Смотрящий
 
12.11.22
14:11
content-type - так попробуй
5 OnePrg
 
12.11.22
14:17
(4) Заголовки.Вставить("Content-Type", "application/json");  ?
6 OnePrg
 
12.11.22
14:32
(4)

Адрес = "Москва Петушки";
HTTPСоединение = Новый HTTPСоединение("maps.googleapis.com", ,,,,,Новый ЗащищенноеСоединениеOpenSSL());
HTTPЗапрос = Новый HTTPЗапрос("maps/api/geocode/json?address="+Адрес+"&language=ru&key=хххххххххххххххххххххххххх");
Результат =  HTTPСоединение.Получить(HTTPЗапрос);

Оказалось, что вот так преспокойненько работает.
Вопрос закрыт. Спасибо.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший