Имя: Пароль:
1C
1С v8
работа с 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);
Запрос = новый HTTPЗапрос("/zapp/", ЗаголовокHTTP);
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) Ок, спасибо. Хорошая идея
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn