Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: POST запрос из 1с7.7. Время ожидания операции истекло

v7: POST запрос из 1с7.7.  Время ожидания операции истекло
Я
   palpetrovich
 
11.02.19 - 14:43
код:
    К = Симв(34); // кавычки
    стрАвторизация = "'{"+К+"email"+К+":"+К+Логин+К+","+К+"password"+К+":"+К+Пароль+К+"}'";  // '{"email":"api","password":"111"}'
    URLАвторизация = "https://TrueUrl/api/rest.php/auth/session";;
    WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
    WinHttp.Option(2,"utf-8");
    WinHttp.Open("POST", URLАвторизация);
    WinHttp.setRequestHeader("Content-type", "application/json;charset=UTF-8");  
    WinHttp.Send(стрАвторизация);
    ТекстОтвета = WinHttp.ResponseText;

вываливается на WinHttp.Send(стрАвторизация);
стрАвторизация пробовал с кавычками, без кавычек, с кавычками преобразованными в %22
результат один - "Время ожидания операции истекло"

Авторизация из мозилы (инструмент RESTED) - с этими параметрами - проходит удачно

Подскажите куда рыть, тема для меня новая, наверняка че-то не вижу "на поверхности"...
 
 
   Garykom
 
1 - 11.02.19 - 14:52
"Ъ" или свою ВК напиши
   Garykom
 
2 - 11.02.19 - 14:52
А еще же curl'а есть
   palpetrovich
 
3 - 11.02.19 - 15:23
curl конечно есть, но разве WinHttp не работает с 1с?
   trad
 
4 - 11.02.19 - 15:34
1. winhttp и т.п. в 1с работает
2. таймаут может быть и не из-за "аворизации"
3.//'{"email":"api","password":"111"}' - это пишется так без извратов "'{""email"":"""+Логин+""",""password"":"""+Пароль+"""}'"

4. ОС какая?
   palpetrovich
 
5 - 11.02.19 - 15:42
(4)
3. это я уже " на воду дую". непонятно-ж что ему не нравится
4. 7-ка
   Ёпрст
 
6 - 11.02.19 - 15:44
(5) обычно, неверный заголовок или кодировка
   palpetrovich
 
7 - 11.02.19 - 15:48
(6) заголовок - он-же Header? единственный в коде:
WinHttp.setRequestHeader("Content-type", "application/json;charset=UTF-8");  
кодировку пробовал и отдельно устаанвливать
WinHttp.Option(2,"utf-8"); 

и преобразование пробовал (где-то скопипастил)
Функция ПреобразоватьСтрокуВУТФ8(Стр)
    
    ScrCtrl = СоздатьОбъект("MSScriptControl.ScriptControl"); 
    ScrCtrl.Language="JScript"; 
    Сообщение = ScrCtrl.eval("var uri='"+Стр+"'; encodeURI(uri);"); 
    Возврат Сообщение; 
    
КонецФункции
   trad
 
8 - 11.02.19 - 15:51
русские буквы есть в логине/пароле?
   Ёпрст
 
9 - 11.02.19 - 15:53
(7) да хейдер
   palpetrovich
 
10 - 11.02.19 - 15:54
(8) нет, латиница + цыфры
 
 Рекламное место пустует
   Ёпрст
 
11 - 11.02.19 - 15:58
(7) ежели кодируешь, тогда заголовок такой втыкай:
"Content-type", "application/x-www-form-urlencoded"
   Garykom
 
12 - 11.02.19 - 16:00
1. Делаешь чем угодно другим правильно (тот же curl или )
2. Ставишь Fiddler и смотришь как правильно и как не правильно у тя из 1С выходит
3. Думаешь
   palpetrovich
 
13 - 11.02.19 - 16:03
(11) да нет, ничего не кодирую ...если я правильно понял конечно :)
(12) это дома только смогу, на работе - что-б что-то устагновить - семь кругов пройти надо
   Ёпрст
 
14 - 11.02.19 - 16:03
(12) это же не наш метод.
А как же методом научного тыка ?!
   Ёпрст
 
15 - 11.02.19 - 16:04
(13) ну вот ты же пишешь encodeURI, вот и втыкай другой заголовок
   Garykom
 
16 - 11.02.19 - 16:08
WinHttp.Open("POST", "адерс", "тут во всех примерах почему то стоит 0")
   palpetrovich
 
17 - 11.02.19 - 16:08
(15) так то я метод тыка применял ) 
ну и из 
'{"email":"api","password":"111"}'
получал
%7B%22email%22:%22api%22,%22password%22:%22111%22%7D
   Garykom
 
18 - 11.02.19 - 16:08
WinHttp.Open("POST", URLАвторизация, 0);
   palpetrovich
 
19 - 11.02.19 - 16:10
(18) пробовал, результат - тот-же
   Ёпрст
 
20 - 11.02.19 - 16:11
(17) и ?
заголовок для этого ставь как в (11)
   Garykom
 
21 - 11.02.19 - 16:12
   Ёпрст
 
22 - 11.02.19 - 16:16
(17) и это можешь и просто пустую строку в send() писать, а всю свою "авторизацию" в метод Open воткнуть
   palpetrovich
 
23 - 11.02.19 - 16:17
(20) увы
%7B%22email%22:%22api%22,%22password%22:%22111%22%7D
WinHttp.Send: WinHttp.WinHttpRequest: Время ожидания операции истекло
(21) читаю...
(22) это типа "базовая авторизация" ?
   Garykom
 
24 - 11.02.19 - 16:21
Кстати а почему нет

SetRequestHeader "Content-Length"
   palpetrovich
 
25 - 11.02.19 - 16:28
(24) это обязательно?  WinHttp.SetRequestHeader("Content-length", "1024"); - не помогло
   Ёпрст
 
26 - 11.02.19 - 16:29
какой запрос отправляешь в других сервисах ?
   palpetrovich
 
27 - 11.02.19 - 16:33
(26) тема для меня новая, ничего еще не отправлял
   trad
 
28 - 11.02.19 - 16:34
(22) в WinHttpRequest.Open нету авторизации
у WinHttpRequest она в SetCredentials
В Open авторизация у Msxml2.ServerXMLHTTP / Msxml2.XMLHTTP

и к тому же это для http-авторизации
а у автора api-авторизация
   trad
 
29 - 11.02.19 - 16:34
(24) Send сам длину считает
   palpetrovich
 
30 - 11.02.19 - 16:54
всем спасибо, табла в отсутствии "setProxy" была
   palpetrovich
 
31 - 11.02.19 - 17:02
* табла  = тРабла
   Garykom
 
32 - 11.02.19 - 17:16
(30) Ты не издеваешься?

Инет только через прокси и не в курсе что все проги требуют его указания (и авторизации)?
   palpetrovich
 
33 - 11.02.19 - 17:53
(32) нет, я заблуждался совершенно серъезно  :)
 
 
   Злопчинский
 
34 - 11.02.19 - 18:18
Как низко пал секам
   Сияющий в темноте
 
35 - 11.02.19 - 18:22
ну как всегда,собака зарыта в другом месте,а программист пытается пройти в нарисованную дверь.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует