Имя: Пароль:
1C
 
Как сделать такой post запрос
0 lanc2233
 
26.07.16
22:48
Подскажите, как сделать такой запрос, штатными объектами 1с?

WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
Адрес = "http://site.ru";;
WinHttp.Option(2,"utf-8");
WinHttp.Open("POST",Адрес,0);
Парам = "par1=1&par2=2";
WinHttp.Send(Парам);
ТекстОтвета = WinHttp.ResponseText();

Я пытаюсь сделать так:

Адрес = "site.ru";
Парам = "par1=1&par2=2";
HTTPЗапрос = Новый HTTPЗапрос(Парам);
HTTPСоединение = Новый HTTPСоединение(Адрес);
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
ТекстОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();

Но сервер не распознает параметры, выдает ошибку. Первым способом распознает.
1 Mauser
 
26.07.16
23:40
(0) HTTPСоединение.Получить - это GET.
Для понимания POST и передачи параметров используйте, пожалуйста синтакс-помощник
2 Сергиус
 
27.07.16
00:26
(0)ОтправитьДляОбработки (Post)
3 lanc2233
 
27.07.16
10:44
Сделал так.

Адрес = "site.ru";
Парам = "par1=1&par2=2";
HTTPЗапрос = Новый HTTPЗапрос(Парам);
HTTPСоединение = Новый HTTPСоединение(Адрес);
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
ТекстОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();

Все равно сервер возвращает ошибку, что не заданы значения переменных.
4 Serginio1
 
27.07.16
11:27
Берешь в руки Фиддлер и сравниваешь запросы.
УстановитьТелоИзСтроки(<ТелоКакСтрока>, <Кодировка>, <ИспользоватьBOM>)
5 Serginio1
 
27.07.16
11:29
6 Сергиус
 
27.07.16
13:11
(3)Адрес сайта какой точно? Могу скинуть более конкретный пример, делал для другого сайта, стукни в почту.
Ошибка? Это не ошибка, это системная функция.