Имя: Пароль:
1C
1С v8
HTTP запрос, отправка файла
0 Широкий
 
24.04.17
10:44
Делаю выгрузку файла на сайт.

HTTPЗапрос=Новый HTTPЗапрос(АдресЗапроса);
HTTPЗапрос.УстановитьИмяФайлаТела("C:\CML.cml");
HTTPОтвет=HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

В заголовках запроса "Content-Type: application/octet-stream" - не работает.


HTTPЗапрос=Новый HTTPЗапрос(АдресЗапроса);
HTTPЗапрос.Заголовки.Вставить("Content-Type","multipart/form-data; boundary=0328bcdcda1e4c0e8ee8e95d1c08685e");
HTTPЗапрос.УстановитьИмяФайлаТела("C:\out.out");
HTTPОтвет=HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

В заголовках запроса "Content-Type: multipart/form-data" - работает (файл соотвт. сделан с разделителем).

Вопрос:
Может ли такое ограничение быть установлено сервером или в первом запросе что-то не хватает?
1 oleg_km
 
24.04.17
11:19
Так надо у разработчиков сайта узнать, в каком виде они ждут файл: толи в мультипарт, толи октет-стрим. Я вот упражнялся в творении сайта на 1С, у меня в одном месте ожидается мультипарт, а в другом октет-стрим и если перепутать, то тоже будет ошибка. В таких случаях нужно или смотреть доки к сайту или общаться с разработчиками сайта или если не доступно ни то ни другое, но допустим работает в браузере, то тогда фиддлером можно посмотреть как это работает.
2 Широкий
 
24.04.17
11:29
(1) Ясно. Мне просто раньше казалось, что оба метода равнозначны
3 oleg_km
 
24.04.17
11:39
(2) Как же они равнозначны: у одного после основного заголовка просто идут например бинарные данные, а у другого есть еще так сказать подзаголовки. Может один раз увидеть в фиддлере?
4 oleg_km
 
24.04.17
11:40
https://habrahabr.ru/sandbox/103022/

Хотя бы почитай