Имя: Пароль:
1C
1С v8
Как послать http запрос в google?
0 rotting
 
30.11.12
17:35
Есть вот такая статейка от гугла https://developers.google.com/maps/documentation/distancematrix/?hl=ru#DistanceMatrixRequests , пишу так:

Кат = КаталогВременныхФайлов();
   
    Текст = Новый ТекстовыйДокумент;
    Текст.УстановитьТекст(Объект.Параметры);
    Текст.Записать(Кат+"s.txt",КодировкаТекста.ANSI);
   
    ХТТП = Новый HTTPСоединение(Объект.АдресСервера,Объект.Порт);
    ХТТП.ОтправитьДляОбработки(Кат+"s.txt",Объект.ПутьКоманды,Кат+"r.txt");
    //Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(Кат+"r.txt",КодировкаТекста.UTF8);
    Объект.Результат = Текст.ПолучитьТекст();

в адрес сервера пишу maps.googleapis.com/maps/api/distancematrix/xml? ,
в параметры пишу origins=Moskau&destinations=Minsk&mode=driving&language=ru&sensor=false

в ответ получаю вот такую хрень

<?xml version="1.0" encoding="UTF-8"?>
<DistanceMatrixResponse>
<status>INVALID_REQUEST</status>
</DistanceMatrixResponse>


как сделать правильно?
1 rotting
 
30.11.12
17:42
что-то в последнее время миста мне ничего подсказать не может....
2 rotting
 
30.11.12
17:45
я понимаю что лень в пятницу вникать в чужую проблему, но я уже всю голову сломал себе
3 zulu_mix
 
30.11.12
17:49
попробуй КодировкаТекста.UTF8
4 oleg_km
 
30.11.12
18:02
Я в таких случаях беру Fidller, свой любимый браузер и смотрю что происходит в интерактивном обмене. Потом тоже воспроизвожу с помощью HTTPСоединение
5 rotting
 
30.11.12
18:02
(3) тоже самое((
6 rotting
 
30.11.12
18:07
(4) спс, сча попробую раздуплить
7 oleg_km
 
30.11.12
18:10
(6) Вот с этого и нужно начинать. А когда не получиться выкладывать логи и задавать вопросы. А то х.з. что там у гугля наверчено?
8 rs_trade
 
30.11.12
18:12
url_Адрес    = URLEncode4(Адрес);
   
   Запрос    = "http://maps.google.ru/maps/geo?"+"q="+url_Адрес+"&"+"key="+Ключ+"&output="+ФорматОтвета+"&oe=cp1251&sensor=true_or_false";
   
   Попытка
       XMLHttp    = GetCOMObject("",    "Microsoft.XMLHTTP");
   Исключение
       Возврат Неопределено;
   КонецПопытки;
   
   
   //Инициируем асинхронный запрос, который вернет управление программе только после получения ответа
   Попытка
       XMLHttp.Open("GET", Запрос, Ложь);
   Исключение
       Ошибка = ОписаниеОшибки();
       Возврат Неопределено;
   КонецПопытки;
   
   //Отправка запроса                                                      
   XMLHttp.Send();
   
   Если XMLHttp.Status = 200 Тогда
       Возврат XMLHttp.ResponseText;
   Иначе
       Возврат Неопределено;    
   КонецЕсли;
9 rs_trade
 
30.11.12
18:12
Функция URLEncode4(Строка="")
   
   ScrCtrl = Новый COMОбъект("MSScriptControl.ScriptControl");
   ScrCtrl.Language="JScript";
   Сообщение = ScrCtrl.eval("var uri='"+Строка+"'; encodeURI(uri);") ;
   
   Возврат Сообщение;
   
КонецФункции
10 rs_trade
 
30.11.12
18:13
Я так с гуглем общался.
11 rotting
 
30.11.12
18:14
(9) мне на веб клиенте нужно, и скорее всего и сервер, клиент будут работать под линуксом, так что ком не катит
12 rs_trade
 
30.11.12
18:15
(11) найди другую функцию кодирования. без кома. тут на мисте есть.
13 rs_trade
 
30.11.12
18:15
а блин, там же тоже ком.
14 rotting
 
30.11.12
18:26
(7) поставить - поставил, что-то там написано))) Куда смотреть то?
15 rotting
 
30.11.12
18:30
пишет что User-Agent: 1C+Enterprise/8.2 , может гугл из-за этого посылать нах...?
16 rotting
 
30.11.12
18:41
ап