![]() |
|
работа с HTTP. Зависания на WinHttp.WinHttpRequest | ☑ | ||
---|---|---|---|---|
0
alexshape
11.11.20
✎
10:06
|
Привет всем.
Создаю объект: Новый COMОбъект("WinHttp.WinHttpRequest.5.1") и порой возникает такая ситуация, что при работает с этим COMОбъектом, происходят лаги. Методы (по типу: "SetTimeouts", )выполняются долго, хотя что таам такого, ничего пока еще по сети не передается. И это не всегда. Сервер 1с, весрии 8.3.14.1630 |
|||
1
ДенисЧ
11.11.20
✎
10:33
|
А зачем ты им пользуешься? Чем штатные методы не устраивают?
|
|||
2
alexshape
11.11.20
✎
11:04
|
(1)
1. Писал не я, работаю с тем что есть 2. попробовал переписать на штатные механизмы, но возвращается ошибка 502 Соединение = новый HTTPСоединение(СтрЗаменить(АдресРесурса, "http://", ""),,ПараметрыСервиса.Пользователь,ПараметрыСервиса.Пароль,,10000); ФайлЗапроса = ПолучитьИмяВременногоФайла(); ТекстовыйФайл = Новый ТекстовыйДокумент; ТекстовыйФайл.УстановитьТекст(ДанныеЗапроса); ТекстовыйФайл.Записать(ФайлЗапроса, КодировкаТекста.UTF8); ФайлРезультата = ПолучитьИмяВременногоФайла(".txt"); ЗаголовокHTTP = новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "text/xml; charset=utf-8"); ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8"); ЗаголовокHTTP.Вставить("Accept-Language", "ru"); ЗаголовокHTTP.Вставить("Content-Language", "ru"); ЗаголовокHTTP.Вставить("Content-Charset", "utf-8"); Запрос = новый HTTPЗапрос("/", ЗаголовокHTTP); Запрос.УстановитьТелоИзДвоичныхДанных(Новый ДвоичныеДанные(ФайлЗапроса)); Соединение.ОтправитьДляОбработки(Запрос, ФайлРезультата); Ответ = Новый ТекстовыйДокумент(); Ответ.Прочитать(ФайлРезультата, КодировкаТекста.UTF8); ТекстОтвета = Ответ.ПолучитьТекст(); УдалитьФайлы(ФайлЗапроса); УдалитьФайлы(ФайлРезультата); |
|||
3
alexshape
11.11.20
✎
11:07
|
(2) Хотя через COm все работает
|
|||
4
alexshape
11.11.20
✎
11:08
|
вот ком:
Таймаут = 1000; WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.SetTimeouts(Таймаут, Таймаут, Таймаут, Таймаут); WinHttp.Option(2, "utf-8"); WinHttp.Open("POST", АдресРесурса); WinHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); ЗаполнитьПараметрыАутентификации(WinHttp, ПараметрыСервиса); WinHttp.Send(ДанныеЗапроса); |
|||
5
Kigo_Kigo
11.11.20
✎
11:16
|
(4) А если убрать вообще
WinHttp.SetTimeouts(Таймаут, Таймаут, Таймаут, Таймаут); ? |
|||
6
Kigo_Kigo
11.11.20
✎
11:17
|
И да, инет соединение стабильно?
|
|||
7
arsik
гуру
11.11.20
✎
11:24
|
(2) Вот тут наверно ошибка
Запрос = новый HTTPЗапрос("/", ЗаголовокHTTP);
Если я делаю запрос на http://api.qwerty.ru/zapp/ Соединение = новый HTTPСоединение("api.qwerty.ru",,ПараметрыСервиса.Пользователь,ПараметрыСервиса.Пароль,,10000);
|
|||
8
arsik
гуру
11.11.20
✎
11:27
|
+(7) А еще возможно прокси нужно указать.
|
|||
9
alexshape
11.11.20
✎
11:35
|
(7) неа, все равно
Error Code: 502 Proxy Error. The ISA Server denied the specified Uniform Resource Locator (URL). (12202) |
|||
10
arsik
гуру
11.11.20
✎
11:38
|
(9) Ну так я так полагаю, что вас переадресовывают на https
|
|||
11
arsik
гуру
11.11.20
✎
11:41
|
+(10) Вру. У вас прокси сказал - идите нахуй, такого сайта в разрешенных для вашего приложения нет.
|
|||
12
alexshape
11.11.20
✎
11:46
|
прокси указал. и защищенное соединение, теперь: Ошибка работы с Интернет: Failure when receiving data from the peer
|
|||
13
arsik
гуру
11.11.20
✎
11:47
|
(12) не. Защищенное ненадо
|
|||
14
alexshape
11.11.20
✎
11:53
|
(13) Убрал, но тогда
Error Code: 502 Proxy Error. The ISA Server denied the specified Uniform Resource Locator (URL). (12202) |
|||
15
novichok79
11.11.20
✎
12:16
|
могу посоветовать чем отличается отправка из 1С и не 1С через fiddler какой-нибудь.
|
|||
16
novichok79
11.11.20
✎
12:16
|
*посоветовать посмотреть и дальше решать что делать.
|
|||
17
alexshape
11.11.20
✎
12:19
|
(15) Ок, спасибо. Хорошая идея
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |