Помогите с передачей параметров методом POST

1. nd33 16.01.14 13:55 Сейчас в теме
Добрый день. Необходимо получить данные от сервера: https://pro.subscribe.ru/api/?apiversion=100&json=1&request.id=777&request={"action":"ping";} . Через браузер все отлично считывается.

Возникла проблема с процедурой ОтправитьДляОбработки(), выдает ошибку: Ошибка работы с Интернет: Couldn't connect to server.
WinHTTP так же пробовал. Ошибка: при вызове Send ошибка Произошла исключительная ситуация (WinHttp.WinHttpRequest): Соединение с сервером было неожиданно прервано
Все впустую.

Код:

Сервер = "pro.subscribe.ru";
Ресурс = "/api";
HTTP = Новый HTTPСоединение(Сервер,443,,,,Истина);
ФайлЗапроса = ПолучитьИмяВременногоФайла();
ТекстовыйФайл = Новый ТекстовыйДокумент;
ТекстовыйФайл.УстановитьТекст("?apiversion=100&json=1&request.id=777&request={""action"" : ""ping""}");
ТекстовыйФайл.Записать(ФайлЗапроса, КодировкаТекста.UTF8);
ФайлРезультата = ПолучитьИмяВременногоФайла();
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
ЗаголовокHTTP.Вставить("Accept-Language", "ru");
ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
ЗаголовокHTTP.Вставить("Content-Language", "ru");
ЗаголовокHTTP.Вставить("Content-Charset", "utf-8");
HTTP.ОтправитьДляОбработки(ФайлЗапроса, Ресурс, ФайлРезультата, ЗаголовокHTTP);
Ответ = Новый ТекстовыйДокумент();
Ответ.Прочитать(ФайлРезультата, КодировкаТекста.UTF8);
ТекстОтвета = Ответ.ПолучитьТекст();
УдалитьФайлы(ФайлЗапроса);
УдалитьФайлы(ФайлРезультата);

Попытка
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"utf-8");
WinHttp.Open("POST","https://pro.subscribe.ru/api/",0);
WinHttp.SetRequestHeader("Accept-Language", "ru");
WinHttp.SetRequestHeader("Accept-Charset","utf-8");
WinHttp.setRequestHeader("Content-Language", "ru");
WinHttp.setRequestHeader("Content-Charset", "utf-8");
WinHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
ПараметрыПОСТ = "&apiversion=100&json=1&request.id=777&request={""action"" : ""ping""}";
WinHttp.Send(ПараметрыПОСТ);
ТекстОтвета = WinHttp.ResponseText();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;


Спасибо за помощь.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SeverBaP 5 21.01.14 12:57 Сейчас в теме
У тебя проблемы с сертификатом там поэтому нет возможности подключится. Долго ковырялся тоже как ты раньше но нашел как это обойти вот переработанное (сейчас пользуюсь постоянно так как писал для интеграции с курьерской службой мультишип)
Процедура КнопкаВыполнитьНажатие(Кнопка)
	СтрокаПередачи="?apiversion=100&json=1&request.id=777&request={""action"" : ""ping""}";
    Ответ=ОтправитьЧерезВин(СтрокаПередачи,"pro.subscribe.ru","/api");
КонецПроцедуры

Функция ОтправитьЧерезВин(Содержимое,АдресСервераОнлайнПроверки,РесурсНаСервере)
	
	WinHttp=Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
	
	Скрипт= Новый COMОбъект("MSScriptControl.ScriptControl");
	Скрипт.language="javascript";
	
	Скрипт.AddObject("WinHttp",WinHttp);
	Скрипт.Eval("WinHttp.Option(4)=13056");//intSslErrorIgnoreFlags
	
	Скрипт.Eval("WinHttp.Option(6)=true");//blnEnableRedirects
	
	Скрипт.Eval("WinHttp.Option(12)=true");//blnEnableHttpsToHttpRedirects
	
	WinHttp.Open("POST","https://"+АдресСервераОнлайнПроверки+"/"+РесурсНаСервере,false);
	WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
	
	Попытка
		WinHttp.Send(Содержимое);
		WinHttp.WaitForResponse();
		Возврат WinHttp.ResponseText;
	Исключение
		Возврат "";
	КонецПопытки;
	
КонецФункции
Показать
3. user651544_berezhnevaen 1 03.05.18 16:32 Сейчас в теме
Добрый день.
Похожая проблема, с сайта все работает, а при send валится по ошибке

Произошла исключительная ситуация (WinHttp.WinHttpRequest): An error occurred in the secure channel support

Код которым отправляются данные:

 WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    WinHttp.Option(2,"utf-8"); 
    WinHttp.Open("POST",URL,0);
 
    
    WinHttp.SetRequestHeader("Accept-Language", "ru");
    WinHttp.SetRequestHeader("Accept-Charset","utf-8");
    WinHttp.setRequestHeader("Content-Language", "ru");
    WinHttp.setRequestHeader("Content-Charset", "utf-8");
    WinHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
   WinHttp.setRequestHeader("BillNumber",BillNumber);
   WinHttp.setRequestHeader("Merchant_ID",Merchant_ID);
   WinHttp.setRequestHeader("Login",Login);
   WinHttp.setRequestHeader("Password",Password);
   
    
    
    WinHttp.Send();
Показать


Обход Сергея Афонькина не помогает, ошибка та же :( понимаю что ваша проблема скорее всего давно решена, может подскажите как решили? Заранее спасибо
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот