|
Конвертировать html запрос в 1С HTTPЗапрос | ☑ | ||
---|---|---|---|---|
0
zippygrill
24.05.18
✎
11:40
|
Всем привет! Знатоки http запросов, нужна ваша помощь.
Не получается переписать РАБОЧИЙ html запрос на 1С-ный Новый HTTPЗапрос Есть значит файл html c кодом, которая на отлично возвращает ответ в виде xml со всей нужной информацией. "<html><body> <FORM target=_blank ACTION="https://site.ru/charge/charge.cfm" METHOD="POST"> <INPUT TYPE="TEXT" NAME="BillNumber" VALUE="5113507224001229"> <INPUT TYPE="HIDDEN" NAME="Merchant_ID" VALUE="113507"> <INPUT TYPE="HIDDEN" NAME="Login" VALUE="demo_oezzxwwbyuiq"> <INPUT TYPE="HIDDEN" NAME="Password" VALUE="4l4mdb3sa36fgj"> <INPUT TYPE="HIDDEN" NAME="Format" VALUE="3"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Confirm"> </FORM> </body></html>" Пишу так: СтруктураURI = СтруктураURI(ПолныйАдресРесурса); ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(); HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, СтруктураURI.Порт,Login,Password,,60,ЗащищенноеСоединение); ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8"); ЗаголовокHTTP.Вставить("BillNumber", BillNumber); ЗаголовокHTTP.Вставить("Merchant_ID", Merchant_ID); ЗаголовокHTTP.Вставить("Login", Login); ЗаголовокHTTP.Вставить("Password", Password); ЗаголовокHTTP.Вставить("Format", "3"); HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере, ЗаголовокHTTP); Попытка Результат = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); Исключение // исключение здесь говорит о том, что запрос не дошел до HTTP-Сервера Сообщить("Произошла сетевая ошибка!"); ВызватьИсключение; КонецПопытки; В результате, в Результат.ПолучитьТелоКакСтроку() получаю ошибку ERROR-150;14:200 Я так понимаю что все параметры нужно положить в заголовке запроса или все-таки по другому? |
|||
1
zippygrill
24.05.18
✎
11:44
|
Причем код ответа 1с-ного запроса равен 200 - то есть все ок
|
|||
2
vdss
24.05.18
✎
11:57
|
Обрати внимание, что у тебя данные лежат внутри тега body, а ты пытаешься запихать их в заголовки, т.е. headers.
Попробуй свою строку с данными установить как тело запроса с помощью метода УстановитьТелоИзСтроки HTTPЗапрос (HTTPRequest) УстановитьТелоИзСтроки (SetBodyFromString) Синтаксис: УстановитьТелоИзСтроки(<ТелоКакСтрока>, <Кодировка>, <ИспользоватьBOM>) Параметры: <ТелоКакСтрока> (обязательный) Тип: Строка. Содержит тело запроса в виде строки. |
|||
3
zippygrill
24.05.18
✎
12:00
|
(2) Да,
именно в этом дело было |
|||
4
zippygrill
24.05.18
✎
12:06
|
А есть ли аналог этой функции только для WinHttp.WinHttpRequest ?
|
|||
5
Локи-13
24.05.18
✎
12:12
|
надо HTTPЗапрос.УстановитьТелоИзСтроки("BillNumber=5113507224001229&Merchant_ID=113507")
|
|||
6
Локи-13
24.05.18
✎
12:12
|
заголовка хватит и одного Content-Type
|
|||
7
zippygrill
24.05.18
✎
12:15
|
+ (4) нашел в методе Send()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |