|
Отправить файл на сервер через POST | ☑ | ||
---|---|---|---|---|
0
Zixxx
16.10.15
✎
15:14
|
Не получается отправить файл на сервер через POST с использованием типа multipart/form-data
[CODE] ФайлДляОправки = Новый Файл("D:\1\ost.xml"); РазмерОтправляемогоФайла = ФайлДляОправки.Размер(); boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", ""); ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data boundary=" + boundary + ""); ЗаголовокHTTP.Вставить("Content-Length", XMLСтрока(РазмерОтправляемогоФайла)); HTTPЗапрос = Новый HTTPЗапрос(); АдресРесурса = "/cp/distributor/pricelistUpdate?userlogin=" + СтруктураПараметров.Логин + "&userpsw=" + СтруктураПараметров.Пароль + "&distributorId=" + "1380620" + "&uploadFile=" + "D:\1\ost.xml"; HTTPЗапрос.АдресРесурса = АдресРесурса; HTTPЗапрос.Заголовки = ЗаголовокHTTP; HTTPЗапрос.УстановитьИмяФайлаТела("D:\1\ost.xml"); Соединение = Новый HTTPСоединение("zap54.com.public.api.abcp.ru", , СтруктураПараметров.Логин, СтруктураПараметров.Пароль); ОтветHTTP = Соединение.ОтправитьДляОбработки(HTTPЗапрос); Тело = ОтветHTTP.ПолучитьТелоКакСтроку(); Чтение = Новый ЧтениеJSON(); Чтение.УстановитьСтроку(Тело); Данные = ПрочитатьJSON(Чтение); Сообщить("" + Данные.errorCode + " / " + Данные.errorMessage + ""); [/CODE] Как только не пробовал делать постоянно получаю ошибку "2 / Файл не передан или передан некорректно." Такое впечатление что сервер не видит что я ему передал файл, а вот параметры видит, если указать не правильно будет ругаться что не найден поставщик Здесь небольшой мануал по ссылке https://yadi.sk/i/2MyQHEhkjn9hk Может кто подсказать где ошибка или что делаю не так? |
|||
1
Дык ё
16.10.15
✎
16:03
|
в теле запроса не xml должно быть, а form-data
|
|||
2
Zixxx
16.10.15
✎
16:08
|
(1) Так а в каком формате это должно быть?
|
|||
3
Дык ё
16.10.15
✎
16:10
|
||||
4
Zixxx
16.10.15
✎
16:18
|
(3) Так я тоже пробовал сделать и передал туда все параметры
[CODE] --150e68792816410fb0043e03e1beaef9 Content-Disposition: form-data; name="userlogin" [email protected] --150e68792816410fb0043e03e1beaef9 Content-Disposition: form-data; name="userpsw" 7334099e57f0243fec8932e227051ec2 --150e68792816410fb0043e03e1beaef9 Content-Disposition: form-data; name="distributorId" 1380620 --150e68792816410fb0043e03e1beaef9 Content-Disposition: form-data; name="xml"; filename=C:\Users\Admin\AppData\Local\Temp\v8_97E2_a4.xml Content-Type: xml <?xml version='1.0' encoding='UTF-8'?> <base> <article> <description>АБСОРБЕР ЗАДНЕГО БАМПЕРА AССENT</description> <number>86620-25000</number> <brand>Hyundai/KIA</brand> <price>882</price> <quantity>5</quantity> </article> <article> <description>АБСОРБЕР ЗАДНЕГО БАМПЕРА ELANTRA NEW</description> <number>86620-2H010</number> <brand>Hyundai/KIA</brand> <price>654</price> <quantity>1</quantity> </article> </base> --150e68792816410fb0043e03e1beaef9-- [/CODE] |
|||
5
Дык ё
16.10.15
✎
16:56
|
(4) boundary в теле такой же, как в заголовке?
ну и Content-Type, наверно, text/xml |
|||
6
Гёдза
16.10.15
✎
16:59
|
Может BOM
|
|||
7
Zixxx
16.10.15
✎
16:59
|
(5) Да, были некоторые неточности, разобрался, спасибо. Только как-то геморно все таки получается, параметры зачем-то надо указывать не только в адресе ресурса но и в самом тексте
|
|||
8
Дык ё
16.10.15
✎
17:01
|
(7) а в адресе указывать не надо. разве что сервис индусы писали :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |