|
v7: POST запрос из 1с7.7. Время ожидания операции истекло | ☑ | ||
---|---|---|---|---|
0
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) - с этими параметрами - проходит удачно Подскажите куда рыть, тема для меня новая, наверняка че-то не вижу "на поверхности"... |
|||
1
Garykom
гуру
11.02.19
✎
14:52
|
"Ъ" или свою ВК напиши
|
|||
2
Garykom
гуру
11.02.19
✎
14:52
|
А еще же curl'а есть
|
|||
3
palpetrovich
11.02.19
✎
15:23
|
curl конечно есть, но разве WinHttp не работает с 1с?
|
|||
4
trad
11.02.19
✎
15:34
|
1. winhttp и т.п. в 1с работает
2. таймаут может быть и не из-за "аворизации" 3. //'{"email":"api","password":"111"}' - это пишется так без извратов "'{""email"":"""+Логин+""",""password"":"""+Пароль+"""}'" 4. ОС какая? |
|||
5
palpetrovich
11.02.19
✎
15:42
|
(4)
3. это я уже " на воду дую". непонятно-ж что ему не нравится 4. 7-ка |
|||
6
Ёпрст
11.02.19
✎
15:44
|
(5) обычно, неверный заголовок или кодировка
|
|||
7
palpetrovich
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);"); Возврат Сообщение; КонецФункции |
|||
8
trad
11.02.19
✎
15:51
|
русские буквы есть в логине/пароле?
|
|||
9
Ёпрст
11.02.19
✎
15:53
|
(7) да хейдер
|
|||
10
palpetrovich
11.02.19
✎
15:54
|
(8) нет, латиница + цыфры
|
|||
11
Ёпрст
11.02.19
✎
15:58
|
(7) ежели кодируешь, тогда заголовок такой втыкай:
"Content-type", "application/x-www-form-urlencoded" |
|||
12
Garykom
гуру
11.02.19
✎
16:00
|
1. Делаешь чем угодно другим правильно (тот же curl или )
2. Ставишь Fiddler и смотришь как правильно и как не правильно у тя из 1С выходит 3. Думаешь |
|||
13
palpetrovich
11.02.19
✎
16:03
|
(11) да нет, ничего не кодирую ...если я правильно понял конечно :)
(12) это дома только смогу, на работе - что-б что-то устагновить - семь кругов пройти надо |
|||
14
Ёпрст
11.02.19
✎
16:03
|
(12) это же не наш метод.
А как же методом научного тыка ?! |
|||
15
Ёпрст
11.02.19
✎
16:04
|
(13) ну вот ты же пишешь encodeURI, вот и втыкай другой заголовок
|
|||
16
Garykom
гуру
11.02.19
✎
16:08
|
WinHttp.Open("POST", "адерс", "тут во всех примерах почему то стоит 0")
|
|||
17
palpetrovich
11.02.19
✎
16:08
|
(15) так то я метод тыка применял )
ну и из '{"email":"api","password":"111"}' получал %7B%22email%22:%22api%22,%22password%22:%22111%22%7D |
|||
18
Garykom
гуру
11.02.19
✎
16:08
|
WinHttp.Open("POST", URLАвторизация, 0);
|
|||
19
palpetrovich
11.02.19
✎
16:10
|
(18) пробовал, результат - тот-же
|
|||
20
Ёпрст
11.02.19
✎
16:11
|
(17) и ?
заголовок для этого ставь как в (11) |
|||
21
Garykom
гуру
11.02.19
✎
16:12
|
||||
22
Ёпрст
11.02.19
✎
16:16
|
(17) и это можешь и просто пустую строку в send() писать, а всю свою "авторизацию" в метод Open воткнуть
|
|||
23
palpetrovich
11.02.19
✎
16:17
|
(20) увы
%7B%22email%22:%22api%22,%22password%22:%22111%22%7D WinHttp.Send: WinHttp.WinHttpRequest: Время ожидания операции истекло (21) читаю... (22) это типа "базовая авторизация" ? |
|||
24
Garykom
гуру
11.02.19
✎
16:21
|
Кстати а почему нет
SetRequestHeader "Content-Length" |
|||
25
palpetrovich
11.02.19
✎
16:28
|
(24) это обязательно? WinHttp.SetRequestHeader("Content-length", "1024"); - не помогло
|
|||
26
Ёпрст
11.02.19
✎
16:29
|
какой запрос отправляешь в других сервисах ?
|
|||
27
palpetrovich
11.02.19
✎
16:33
|
(26) тема для меня новая, ничего еще не отправлял
|
|||
28
trad
11.02.19
✎
16:34
|
(22) в WinHttpRequest.Open нету авторизации
у WinHttpRequest она в SetCredentials В Open авторизация у Msxml2.ServerXMLHTTP / Msxml2.XMLHTTP и к тому же это для http-авторизации а у автора api-авторизация |
|||
29
trad
11.02.19
✎
16:34
|
(24) Send сам длину считает
|
|||
30
palpetrovich
11.02.19
✎
16:54
|
всем спасибо, табла в отсутствии "setProxy" была
|
|||
31
palpetrovich
11.02.19
✎
17:02
|
* табла = тРабла
|
|||
32
Garykom
гуру
11.02.19
✎
17:16
|
(30) Ты не издеваешься?
Инет только через прокси и не в курсе что все проги требуют его указания (и авторизации)? |
|||
33
palpetrovich
11.02.19
✎
17:53
|
(32) нет, я заблуждался совершенно серъезно :)
|
|||
34
Злопчинский
11.02.19
✎
18:18
|
Как низко пал секам
|
|||
35
Сияющий в темноте
11.02.19
✎
18:22
|
ну как всегда,собака зарыта в другом месте,а программист пытается пройти в нарисованную дверь.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |