Ошибка при вызове метода контекста send

Если при получении данных с сайта возникает ошибка:

Ошибка при вызове метода контекста (Send): Произошла исключительная ситуация (WinHttp.WinHttpRequest): The certificate authority is invalid or incorrect

Это может означать, что соединение защищенное и 1С не может установить подлинность сертификата.

Чтобы обойти эту ситуацию можно включить игнорирование ошибок защищенного соединения. Ниже в листенге это «блок по отключению защищенного соединения»


WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.SetProxy(2, ПроксиСервер.Адрес+":"+ПроксиСервер.Порт); // устанавливаем параметры проксисервера если нужно
WinHttp.SetCredentials(ПроксиСервер.Логин, ПроксиСервер.Пароль, 1); // логин и пароль проксисервера
// ************************** Начало блока по отключению защищенного соединения **********
Скрипт= Новый COMОбъект("MSScriptControl.ScriptControl");
Скрипт.language="javascript";
Скрипт.AddObject("WinHttp",WinHttp);
Скрипт.Eval("WinHttp.Option(2)=1251"); // установка кодировки страницы
Скрипт.Eval("WinHttp.Option(4)=13056");//intSslErrorIgnoreFlags Игноировать ошбибки при SSL соединении
Скрипт.Eval("WinHttp.Option(6)=true");//blnEnableRedirects Разрешить перенаправления
Скрипт.Eval("WinHttp.Option(12)=true");//blnEnableHttpsToHttpRedirects Разрешить перенаправления с защищенного на не защиещенное соединение
// ************************** Конец блока по отключению защищенного соединения **********
WinHttp.Open("POST",URLСайта, Ложь); // URLСайта нужно заменить на тот к которому подсоединяетесь
WinHttp.SetRequestHeader("Host", URLСайта);	// URLСайта нужно заменить на тот к которому подсоединяетесь
WinHttp.SetRequestHeader("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5");
WinHttp.SetRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
WinHttp.SetRequestHeader("Accept-Language","ru,en-us;q=0.7,en;q=0.3");
WinHttp.SetRequestHeader("Accept-Charset","windows-1251,utf-8;q=0.7,*;q=0.7");
WinHttp.SetRequestHeader("Keep-Alive","300");
WinHttp.SetRequestHeader("Connection","keep-alive");
WinHttp.SetRequestHeader("Content-Type","application/x-www-form-urlencoded");
WinHttp.Send(ДанныеPOSTЗапроса)

Ключевыми, здесь являются параметры 4 и 12

Также встречал следующий код, но он НЕ рабочий, хотя и не вызывает ошибок


WinHttp.Option(2, 1251);
WinHttp.Option(4, 13056);//intSslErrorIgnoreFlags
WinHttp.Option(6, true);//blnEnableRedirects
WinHttp.Option(12, true);//blnEnableHttpsToHttpRedirects
Ошибка при вызове метода контекста (send) ☑ 0

falselight

08.09.16

12:00

Подскажите пожалуйста как избавиться от этой ошибки:

    //

    УРЛ = «ссылка» + СокрЛП(ЭлементыФормы.url.Значение);

    ХМЛХТТП = ПолучитьCOMОбъект(«», «Microsoft.XMLHTTP»);

    ХМЛХТТП.Open(«GET», УРЛ, Ложь);

    ХМЛХТТП.Send(Null);  

    Пока ХМЛХТТП.Status <> 200 Цикл

        Состояние(«Ждем…»);

    КонецЦикла;

    //ТегНачалоРезультата     = «<parents>»;

    //ТегКонецРезультата         = «</parents>»;

    //ТегНачалоРезультата2     = «<id>»;

    //ТегКонецРезультата2     = «</id>»;

    //ТегНачалоПоля     = «<» +     ТегПоляНаСайте + «>»;

    //ТегКонецПоля     = «</» +     ТегПоляНаСайте + «>»;

    ТекстОтвета = ХМЛХТТП.ResponseText;

    //

{Форма.Форма.Форма(7)}: Ошибка при вызове метода контекста (send)

    ХМЛХТТП.Send(Null);  

по причине:

Произошла исключительная ситуация (msxml3.dll): Указанный протокол неизвестен.

1

Serginio1

08.09.16

12:04

Аналог null в 1С это неопределено

2

Cyberhawk

08.09.16

12:05

(1) Аналог, да не аналог и не везде :)

3

Serginio1

08.09.16

12:06

(2) В ВК кстати Null

4

falselight

08.09.16

12:13

работает на других функциях с null

я решил проверить обработкой, выдает ошибку

на метод send, что нужно исправить?

5

sapphire

08.09.16

12:16

(0)

https://msdn.microsoft.com/ru-ru/library/ms536736.aspx

send method

Sends an HTTP request to the server and receives a response.

Syntax

XMLHttpRequest.send(varBody);

Parameters

varBody [in, optional]

Type: any

Any that specifies the body of the message being sent with the request.

Value    Meaning

ArrayBuffer

A binary data. See FileReader.readAsArrayBuffer.

blob

A Blob (binary data object).

Document

A documentnode.

ArrayBufferView

A typed array view of an ArrayBuffer.

string

A DOMString.

FormData

A FormData object

Как видим, NULL там нет :)

6

falselight

08.09.16

12:17

(1) если ставить неопределено за место null таже ошибка

7

sapphire

08.09.16

12:17

+(5) Но, поскольку varBody optional, то,

ХМЛХТТП.Send();

8

falselight

08.09.16

12:17

(0) а что там должно быть?

9

sapphire

08.09.16

12:18

(6) Не ставьте вообще ничего

10

falselight

08.09.16

12:18

(9) попробую

11

falselight

08.09.16

12:21

(9) ругается

{Форма.Форма.Форма(8)}: Ошибка при вызове метода контекста (send)

    ХМЛХТТП.Send();  

по причине:

Произошла исключительная ситуация (msxml3.dll): Указанный протокол неизвестен.

12

falselight

08.09.16

12:21

что то не так!!!

13

Serginio1

08.09.16

12:22

(12) Пустую строку

14

sapphire

08.09.16

12:22

(11) Так это не потому.

Вы в УРЛ пихаете что?

УРЛ = «ссылка» + СокрЛП(ЭлементыФормы.url.Значение);

15

Serginio1

08.09.16

12:22

16

sapphire

08.09.16

12:23

+(14) Любой браузер ругнется на такой урл

17

falselight

08.09.16

12:27

(16) то что я ложу в УРЛ пробовал в браузере он возвращает номер, то есть работает

18

falselight

08.09.16

12:32

брал с отладчика с табло, вставлял в строку браузера

19

sapphire

08.09.16

12:34

(17) НЕ ВЕРЮ (с)

20

sapphire

08.09.16

12:35

(18) значение УРЛ в студию.

21

Serginio1

08.09.16

12:35

(18) А там по аналогии с 1С

xhr.open(‘POST’, ‘/server’, true);

а в Send ресурсы

22

falselight

08.09.16

12:37

23

Serginio1

08.09.16

12:38

24

Serginio1

08.09.16

12:39

А попробуй

ХМЛХТТП.Open(«GET», «http://www.reestr35.ru/admin/offline_func.php»;, Ложь);

    ХМЛХТТП.Send(«?act=add_redirect&url=http://ya.ru»;);

25

sapphire

08.09.16

12:43

(22)

УРЛ = «http://www.reestr35.ru/admin/offline_func.php?act=add_redirect&url=http://ya.ru»;;

ХМЛХТТП = ПолучитьCOMОбъект(«», «Microsoft.XMLHTTP»);

ХМЛХТТП.Open(«GET», УРЛ, Ложь);

ХМЛХТТП.Send(Null);  

Пока ХМЛХТТП.Status <> 200 Цикл

     Состояние(«Ждем…»);

КонецЦикла;

ТекстОтвета = ХМЛХТТП.ResponseText;

У меня работает.

26

falselight

08.09.16

12:46

(25) почему у меня может быть ошибка?

27

falselight

08.09.16

12:54

(26) не подскажете? если все одинаково, то дело в сервере?

28

Serginio1

08.09.16

12:57

29

falselight

08.09.16

12:58

(28) попробовал на своем компе, тоже самое, ошибка

30

Serginio1

08.09.16

12:59

31

falselight

08.09.16

12:59

(28) все же не понимаю как мне устранить эту ошибку? (

32

falselight

08.09.16

13:00

(30) (24) в смысле?

33

falselight

08.09.16

13:01

(30) но вы говорите же что у вас выполняется все

34

Serginio1

08.09.16

13:07

врап=новый COMОбъект(«NetObjectToIDispatch45»);

    HttpClient=Врап.ПолучитьТипИзСборки(«System.Net.Http.HttpClient»,»System.Net.Http.dll»);

  
  
  handler = врап.СоздатьОбъект(«System.Net.Http.HttpClientHandler»);

  DecompressionMethods= Врап.ПолучитьТип(«System.Net.DecompressionMethods»);

  handler.AutomaticDecompression=Врап.OR(DecompressionMethods.GZip,DecompressionMethods.Deflate) ;

  
  Клиент=Врап.СоздатьОбъект(HttpClient,handler);

  УРЛ = «http://www.reestr35.ru/admin/offline_func.php?act=add_redirect&url=http://ya.ru»;;

  Стр=Клиент.GetStringAsync(УРЛ).Result;

  Сообщить(Стр);

//Клиент.Dispose();

  Врап.ЗакрытьРесурс(Клиент);

Выдает

Your IP (хх.ххх.х.ххх) is not allowed.

35

falselight

08.09.16

13:09

(34) да если пробовать как в 24, тоже

36

Serginio1

08.09.16

13:12

(33) Это не я а 25

37

Serginio1

08.09.16

13:13

(32) Попробуй 15+30

38

falselight

08.09.16

14:14

(36) узнал что такое бывает на сервере иногда

то есть в иной период возможно сработает, как в (0)

39

Serginio1

08.09.16

14:22

(38) Побробуй 37 для успокоения души

40

Serginio1

08.09.16

14:23

38 при этом из браузера читает?

41

falselight

08.09.16

14:30

(39) пока меня выкинуло с сервера и не пускает (((( ожидаю когда наладится если

(24) вот это сработало у меня на компе, выдав результат Your IP (хх.ххх.х.ххх) is not allowed, так как там можно только с сервера, я хотел проверить это на сервере и меня выбросило

то есть при (24) ошибки той нет, и по коду идет дальше

(40) (0) + ссылка из (22) в браузере возвращает число на пустой странице, которое мне и нужно считать

42

Serginio1

08.09.16

14:39

(41) Значит у тебя проблема с библиотеками на сервере. Небось 64 разрядны. А почему HTTPСоединеие не используешь?

Почему 37 не хочешь попробовать?

43

eklmn

08.09.16

14:57

прокси все ломает…

44

sapphire

08.09.16

14:59

(42) Нет не с библиотеками.

45

Serginio1

08.09.16

15:01

(44) Возможно. Я таким анахронизмом давно не занимаюсь.

46

sapphire

08.09.16

15:02

(41) У меня тоже именно это (Your IP (хх.ххх.х.ххх) is not allowed) и выдало.

О чем это говорит, что разрешен вход либо под определенным агентом с определенной подсети, иначе браузер не выдавал бы

числа  <<ссылка из (22) в браузере возвращает число на пустой странице, которое мне и нужно считать>>.

47

falselight

08.09.16

15:53

(42) на сервере 64х разрядная система

(46) да работать это будет только на сервере

48

falselight

08.09.16

15:54

(42) (37) там много написано, изучать неделю только нужно, мне дали пример кода и что делать объяснили, но вот из за ошибки на send ничего не работает

49

sapphire

08.09.16

15:54

(47) неа, иначе как ты видишь ссылка из (22) в браузере возвращает число на пустой странице, которое мне и нужно считать.

50

falselight

08.09.16

15:55

(49) я вижу это в браузере на сервере, там только работает

51

falselight

08.09.16

15:57

но вот из 1с ломается на методе send, пока ни разу не сработало

то что в (24) возвратило <?xml version=»1.0″ encoding=»UTF-8″?> то есть это не подойдет наверное, так как это не то что нужно

52

falselight

08.09.16

16:00

{Форма.Форма.Форма(7)}: Ошибка при вызове метода контекста (send)

    ХМЛХТТП.Send(Null);  

по причине:

Произошла исключительная ситуация (msxml3.dll): Указанный протокол неизвестен.

||

остается

53

Serginio1

08.09.16

16:18

54

Serginio1

08.09.16

16:20

Рядом с NetObjetToIDispatch45.dll лежит RegAsm.bat

его нужно запустить от администратора. Там делов меньше минуты

55

falselight

08.09.16

16:56

(54) ну я не администратор на сервере, мне сказали что метод сенд иногда не работает, иногда работает, я не пойму этого всего пока

56

falselight

08.09.16

16:57

(54) я не в теме этого всего, с этим всем нужно разбираться

Ошибка при вызове метода контекста (send): Отказано в доступе

Ошибка произошла при использовании сервиса геокодирования Яндекса (в рамках задачи получения ближайших станций метро по адресу)

Быстрый переход

  • Полный текст
  • Анализ вариантов
  • Решение:
    • Пример кода

Полный текст

Ошибка при вызове метода контекста (send): Произошла исключительная ситуация (msxml3.dll): Отказано в доступе

Анализ вариантов

1. Найденное на просторах интернета решение добавить «www.» в строку,  привело к другой ошибке (отсутствию ресурса, да и как выяснилось там Ошибка происходила на Open).

2. Изменился адрес или формат запроса.

Зайдя на страницу описания сервиса, в глаза бросилось, что Яндекс перешел  https. (На этапе проверки в браузере, не обратил внимание на redirect c http).

Решение:

Перешел к уже отлаженному на https «Winhttp», возможно свойства Option применимы и XMLHTTP, т.к. остальные, используемые методы и свойства, совместимы.

Пример кода

XMLHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
XMLHttp.Option(2,"UTF-8");
XMLHttp.Option(4, 13056); //intSslErrorIgnoreFlags
Попытка
	XMLHttp.Open("GET", Запрос, Ложь,login,Password);
Исключение
	Ошибка = ОписаниеОшибки();
	Сообщение = Новый СообщениеПользователю;
	Сообщение.Текст = "Ошибочный OPEN "+Ошибка+"("+Запрос+")";
	Сообщение.Сообщить();
        Возврат Ложь;
КонецПопытки;	
//Отправка запроса      
Попытка
	XMLHttp.Send();	
Исключение
КонецПопытки;

Ни одно, даже самое верное дело не двигается без рекламы… Обычно думают, что надо рекламировать только дрянь,- хорошая вещь и так пойдет. Это самое неверное мнение. Реклама — это имя вещи… Реклама должна напоминать бесконечно о каждой, даже чудесной вещи… Думайте о рекламе!»

Ошибка при вызове метода контекста (send) по причине: Произошла исключительная ситуация (msxml6.dll): Отказано в доступе.

Описание ошибки:
При парсинге страницы сайта, точнее при попытке получения файла-изображения:
Ошибка при вызове метода контекста (send)
ХМЛХТТП.Send();
по причине:
Произошла исключительная ситуация (msxml6.dll): Отказано в доступе.

Найденные решения:

Все найденные в поисковике по данном запросу результаты оказались не эффективными в преодолении ошибки, но все-таки приведу ссылки с форума сайта infostart.ru здесь, может помогут в других смежных аспектах приведенной ошибки:

Ошибка при вызове метода контекста (send) — о доступности на клиенте и сервере файла msxml3.dll

Ошибка при вызове метода контекста (send) — о сбое скачивания с ресурса по причине msxml6.dll

1C 8 Ошибка при вызове метода контекста (send) по причине: Произошла исключительная ситуация (msxml6.dll): Отказано в доступе.

1С 8 при получении изображения с сайта Произошла исключительная ситуация (msxml6.dll): Отказано в доступе

Вот участок кода, в котором возникала ошибка:

1С 8 COMОбъект("MSXML2.XMLHttp.6.0") Ошибка при вызове метода контекста (send) по причине: Произошла исключительная ситуация (msxml6.dll)

Оказалось, что ранее, при получении ссылки картинки, не учитывался факт, что на сайте используется https, а ссылка формировалась с http:\\. После учета наличия защищенного соедения на сайте и использования https:\\ ошибка не проявлялась:

 ХМЛХТТП = Новый COMОбъект(«MSXML2.XMLHttp.6.0»);

             ХМЛХТТП.Open(«GET», СсылкаНаКартинку, Ложь);

             ХМЛХТТП.Send();

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

20-06-2019

Журавлев А.С.
(Сайт azhur-c.ru)

Попробовал на 5.29.5.540, тоже самое, инфо по отправке ниже, обратите внимание, что отправлено как «ЧЕРНОВИК», в пакете 2 документа, один из них неформализованный, на нем и ошибка

Пакет отправлен как черновик (Время ЕКБ, МСК+2): 09.12.2019 9:20:45, OrganizationDiadoc.Id = 4a15383adbb94a5ebb01a68f20132765@diadoc.ru, PackageSendTask.OperationId = 0a8146e6-dbc6-45cd-b59a-69a58a8a14ed, PackageSendTask.CounteragentId = d64a17ceabc64022be61bdab30279d54@diadoc.ru

ошибка та же,
Ошибка при вызове метода контекста (Send): Произошла исключительная ситуация (PackageSendTask2.Send): ##100[Ошибка сервера Диадок]code:500, HTTP error: The server encountered an internal error or misconfiguration and was unable to complete your request

Понравилась статья? Поделить с друзьями:
  • Ошибка плагина 2349 как устранить
  • Ошибка получения контрольного вопроса биллинг недоступен мосэнергосбыт
  • Ошибка при вызове метода контекста sheets
  • Ошибка при вызове метода контекста run
  • Ошибка получения контрольного вопроса биллинг недоступен мособлеирц