|
Помогите разобраться с POST запросом до сайта zakupki.gov.ru | ☑ | ||
---|---|---|---|---|
0
SergejM
15.06.11
✎
11:48
|
по документации имеем пример POST запроса:
POST /pgz/services/upload HTTP/1.1 Content-Type: multipart/form-data; boundary=---------------------------7db10b11c0824 Host: zakupki.gov.ru Content-Length: (размер содержимого) Connection: Keep-Alive Cache-Control: no-cache -----------------------------7db10b11c0824 Content-Disposition: form-data; name="login" (имя пользователя) -----------------------------7db10b11c0824 Content-Disposition: form-data; name="password" (пароль) -----------------------------7db10b11c0824 Content-Disposition: form-data; name="document"; filename="(имя файла)" Content-Type: text/xml (XML-документ) -----------------------------7db10b11c0824 Имеем код: ИмяФайлаОтвета = КаталогВременныхФайлов() + "post_out.txt";; ИмяФайлаОтправки = КаталогВременныхФайлов() + "post.txt"; Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()),"-",""); ФайлОтправки = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.UTF8, Символы.ПС, ЛОЖЬ); ФайлОтправки.ЗаписатьСтроку("--" + Boundary); ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""login""" + Символы.ПС); ФайлОтправки.ЗаписатьСтроку(Логин); ФайлОтправки.ЗаписатьСтроку("--" + Boundary); ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""password""" + Символы.ПС); ФайлОтправки.ЗаписатьСтроку(Пароль); ФайлОтправки.ЗаписатьСтроку("--" + Boundary); ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""document""; filename=""exp_"+Формат(ОбщегоНазначения.СервернаяТекущаяДата(),"ДФ=yyyyMMddhhmmss")+"_01.xml.zip"""); ФайлОтправки.ЗаписатьСтроку("Content-Type: text/xml" + Символы.ПС); ТекстЗапроса = Новый ТекстовыйДокумент(); ТекстЗапроса.Прочитать(ПолноеИмяФайла); СодержимоеФайла = ТекстЗапроса.ПолучитьТекст(); ФайлОтправки.ЗаписатьСтроку(СодержимоеФайла); ФайлОтправки.ЗаписатьСтроку("--" + Boundary); ФайлОтправки.Закрыть(); ТекстЗапроса = Новый ТекстовыйДокумент(); ТекстЗапроса.Прочитать(ПолноеИмяФайла); СодержимоеФайла = ТекстЗапроса.ПолучитьТекст(); ФайлОтправки = Новый Файл(ИмяФайлаОтправки); РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер()); Попытка MSXML = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); Исключение Сообщить("Не удалось инициализировать Microsoft XML"); КонецПопытки; // Подключение к серверу Попытка // Подключение к серверу MSXML.open("POST", "https://zakupki.gov.ru/pgz/services/upload", 0); Исключение // Если произойдет ошибка выводятся данные об ошибке. Сообщить("Не удалось инициализировать Microsoft XML"); КонецПопытки; // Установить заголовок запроса // Выполнить запрос Попытка // Установить заголовок запроса MSXML.setRequestHeader("Content-Type","multipart/form-data; boundary=--" + Boundary); MSXML.setRequestHeader("Host", "zakupki.gov.ru"); MSXML.setRequestHeader("Content-Length", РазмерФайлаОтправки); MSXML.setRequestHeader("Connection", "Keep-Alive"); MSXML.setRequestHeader("Cache-Control", "no-cache"); // Выполнить запрос Запрос = Новый ТекстовыйДокумент(); Запрос.Прочитать(ФайлОтправки.ПолноеИмя); СодержимоеЗапроса = Запрос.ПолучитьТекст(); MSXML.send(СодержимоеЗапроса); // // Получить ответ ОтвXML = MSXML.responsetext; Сообщить("ответ запроса: " + ОтвXML); Исключение #Если Клиент Тогда Сообщить("Неудачная попытка соединения: " + ОписаниеОшибки()); #Иначе ЗаписьЖурналаРегистрации("HTTPСоединение", УровеньЖурналаРегистрации.Ошибка, , , "Неудачная попытка соединения: " + ОписаниеОшибки()); #КонецЕсли Возврат; КонецПопытки; ВОПРОС: Почему сервер возвращает ошибку - ответ запроса: Error 500: javax.servlet.ServletException: Параметр document является обязательным |
|||
1
SergejM
15.06.11
✎
11:54
|
к сожалению не могу подправить сообщение чтоб было по понятней и красивее :(
|
|||
2
Evpatiy
15.06.11
✎
11:57
|
(0) Свяжись с тех. поддержкой приемника. Пусть скинут шаблон запроса или описалово. Ошибку же они выдают.
|
|||
3
SergejM
15.06.11
✎
11:59
|
(2) шаблон указан сверху сообщения (0)
тех поддержка своеобразная и отвечает не часто, поэтому пытаюсь отправить методом тыка. |
|||
4
SergejM
15.06.11
✎
12:00
|
Шаблон запроса:
POST /pgz/services/upload HTTP/1.1 Content-Type: multipart/form-data; boundary=---------------------------7db10b11c0824 Host: zakupki.gov.ru Content-Length: (размер содержимого) Connection: Keep-Alive Cache-Control: no-cache -----------------------------7db10b11c0824 Content-Disposition: form-data; name="login" (имя пользователя) -----------------------------7db10b11c0824 Content-Disposition: form-data; name="password" (пароль) -----------------------------7db10b11c0824 Content-Disposition: form-data; name="document"; filename="(имя файла)" Content-Type: text/xml (XML-документ) -----------------------------7db10b11c0824 |
|||
5
SergejM
15.06.11
✎
12:02
|
параметр "document" является обязательным для заполнения как и пароль с логином, но вроде я его передаю в теле сообщения :(
|
|||
6
H A D G E H O G s
15.06.11
✎
12:02
|
(0) Так разработчики борятся со шпиенами и прочими несогласными.
Зачем тебе туда стучаться? |
|||
7
Grusswelle
15.06.11
✎
12:03
|
Навальному софтину на 1С строчишь? ;-)
|
|||
8
sapphire
15.06.11
✎
12:19
|
В (0) полный бред.
Читай внимательно: http://zakupki.gov.ru/wps/wcm/connect/7232850045d211569ce1bc7c17918754/ТФФ%2Bv.2.0.doc?MOD=AJPERES&CACHEID=7232850045d211569ce1bc7c17918754 п.4.1 стр 81 |
|||
9
SergejM
15.06.11
✎
12:24
|
(6) работа такая :)
(7) нет (8) в чем моя ошибка подскажи! этот документ я читал, и старался сделать по нему |
|||
10
sapphire
15.06.11
✎
12:26
|
(9) Надо устанавливать значение заголовков.
И, файло, которое отправляешь - это XML. И, судя по описанию, передается в заголовке. |
|||
11
SergejM
15.06.11
✎
12:41
|
(10) в заголовке ...
типа так? : MSXML.setRequestHeader("Content-Disposition", "form-data; name=""login""" + Символы.ПС + Логин); если да то : Ошибка при вызове метода контекста (SetRequestHeader): Неизвестная ошибка |
|||
12
SergejM
15.06.11
✎
12:42
|
и вообще это как то противоречит http://pro1c.org.ua/index.php?showtopic=939
хотя я конечно не уверен. |
|||
13
Segate
15.06.11
✎
12:43
|
уже 13 постов. Навального упоминали уже? )
|
|||
14
SergejM
15.06.11
✎
12:44
|
(13) Упоминали, хоть проясните кто это?
|
|||
15
SergejM
15.06.11
✎
13:05
|
:(
|
|||
16
sdaf
15.06.11
✎
14:27
|
(14) надежда хомяков
|
|||
17
oleg_km
15.06.11
✎
18:20
|
В последнем
-----------------------------7db10b11c0824 по-моему должны быть две черточки -----------------------------7db10b11c0824-- типа закрывающая скобка |
|||
18
SergejM
16.06.11
✎
09:19
|
(17) ну вообще то это шаблон из документации, но все равно попробую
|
|||
19
oleg_km
16.06.11
✎
09:33
|
напиши, что получится
|
|||
20
SergejM
21.06.11
✎
09:26
|
Да пока ничего
написали в тех поддержку пробовали прогой которая умеет напрямую запросы слать, таже фигня лезет |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |