|
POST-запрос - как его сделать? | ☑ | ||
---|---|---|---|---|
0
PCcomCat
19.08.16
✎
14:33
|
(Из серии "Как страшно жить")
Знаю, здесь есть добрые люди! Подскажите чайнику, который не работал с REST API (собственно, вообще с интернет-сервисами). Нужно сделать запрос: *** POST https://domain/sys/api_login.wcgp login=admin password=pass crm_code=mycrm crm_token=....... url=https://crm.ru/crm_integration.php *** где domain - имя домена, login - логин администатора ВАТС, password - пароль администратора ВАТС, crm_code- идентификатор CRM, token = токен, с которым ВАТС будет входить в CRM для авторизации запросов url - url, по которому должна обращаться ВАТС с запросами. Опубликован интерфейс OData на Apache 2.2. Пишу в 1с следующее: ***** СерверАТС = "xxx.yyy.ru"; Авторизация = "https://xxx.yyy.ru/sys/api_login.wcgp"; urlБД = "https://12.123.123.123:8080/mycrm"; ИмяБазы = "mycrm"; crm_token = "84ebde7c-7bd3-4e59-9534-e1f76c4ef1cd"; Пользователь = "polzovatel"; Пароль = "parol"; ТекстЗапроса = "POST " + Авторизация + Символы.ПС + "login=" + Пользователь + Символы.ПС + "password=" + Пароль + Символы.ПС + "crm_token=" + crm_token + Символы.ПС + "url=" + urlБД; Сообщить(СокрЛП(ТекстЗапроса)); Сообщить(" "); Сообщить(" ******************************************************** "); Сообщить(" "); Соединение = Новый HTTPСоединение(СерверАТС, , Пользователь, Пароль); ЗаголовокHTTP = Новый Соответствие(); Запрос = Новый HTTPЗапрос(СерверАТСАвторизация, ЗаголовокHTTP); Запрос.УстановитьТелоИзСтроки(ТекстЗапроса); ОтветОтСоединения = Соединение.ОтправитьДляОбработки(Запрос); Ответ = ОтветОтСоединения.ПолучитьТелоКакСтроку("UTF-8"); ***** Так вот в ОтветОтСоединения получаю КодСостояния=404. Подскажите, я что-то неправильно делаю, и что? Или не хватает каких-то данных от поставщика услуг? (Может доступ закрыт...) Заранее благодарю. Это новое для меня направление - не судите строго. |
|||
1
PCcomCat
19.08.16
✎
14:53
|
Запрос-то хоть правильно написан?
|
|||
2
arsik
гуру
19.08.16
✎
15:18
|
В 8.1 пост запрос вот так отправляю. В других версиях хз.
ВебСоединение = Новый HTTPСоединение(ПараметрыСервера.ИмяСервера,,ПараметрыСервера.Пользователь,ПараметрыСервера.Пароль,Прокси); ФайлЗапрос = ПолучитьИмяВременногоФайла(); ФайлРезультат = ПолучитьИмяВременногоФайла(); стрУРЛ = ""; пока Выборка.Следующий() Цикл стрУРЛ = стрУРЛ+"®ion["+СокрЛП(Выборка.Ссылка.УникальныйИдентификатор())+"]=("; Для Каждого Координата из Выборка.Ссылка.Координаты ЦИкл стрУРЛ = стрУРЛ+"("+Формат(Координата.Широта,"ЧРД=.; ЧРГ=; ЧГ=0")+","+Формат(Координата.Долгота,"ЧРД=.; ЧРГ=; ЧГ=0")+"),"; КонецЦикла; стрУРЛ = Лев(стрУРЛ,СтрДлина(стрУРЛ)-1)+")"; КонецЦикла; врТекст = Новый ТекстовыйДокумент; врТекст.Вывод = ИспользованиеВывода.Разрешить; врТекст.УстановитьТекст(стрУРЛ); врТекст.Записать(ФайлЗапрос,КодировкаТекста.UTF8); ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Accept-Language","ru"); ЗаголовокHTTP.Вставить("Accept-Charset","utf-8"); ЗаголовокHTTP.Вставить("Content-Language","ru"); ЗаголовокHTTP.Вставить("Content-Charset","utf-8"); ЗаголовокHTTP.Вставить("Content-Type","application/x-www-form-urlencoded"); //ЗаголовокHTTP.Вставить("Content-Length",Формат(Файл.Размер(),"ЧГ=0")); Попытка ВебСоединение.ОтправитьДляОбработки(ФайлЗапрос,"api/geo/update",ФайлРезультат,ЗаголовокHTTP); исключение Результат.Ошибка = Истина; Результат.ОписаниеОшибки = "Не отправлен пост запрос по причине: "+ОписаниеОшибки(); Возврат Результат; КонецПопытки; врТекст.Прочитать(ФайлРезультат,КодировкаТекста.UTF8); |
|||
3
PCcomCat
19.08.16
✎
15:33
|
В Ответ я получаю следующее:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ru" dir="LTR"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> fe3-dc1-ru.itoolabs.net</title> <link rel="stylesheet" href="/SkinFiles/xxx.yyy.ru/Webmail2.yyy.admin/style.css" type="text/css" /> <meta http-equiv="x-dns-prefetch-control" content="off" /> </head> <body background="/SkinFiles/xxx.yyy.ru/Webmail2.enforta.admin/bodybgcolor.gif" leftmargin="60" rightmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <form method="post" enctype="multipart/form-data"> <input type="hidden" name="FormCharset" value="utf-8" /> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr><td height="25"> </td></tr> <tr valign="center"><td align="center" bgcolor="#ffcccc" class="externalError"> Запрошенные данные недоступны <br/> <br/> файл не найден </td></tr> </table> </form> </body> </html> |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |