Имя: Пароль:
1C
1С v8
Отправка файл через POST + параметры
0 SashaInbo
 
14.09.15
02:26
Привет.

Уже всю голову сломал просто.

Как отправить в 1С и файл и сразу параметры POST??

Использую:
Соединение = Новый HTTPСоединение
Запрос = Новый HTTPЗапрос
Запрос.УстановитьИмяФайлаТела

Так я устанавливаю в тело ТОЛЬКО файл, но параметры не могу.


УстановитьТелоИзСтроки
Так я устанавливаю ТОЛЬКО параметры, но уже файл не могу
1 SashaInbo
 
14.09.15
03:27
Использую GOOGLE API и нужно загрузить файл.

Через Запрос.УстановитьИмяФайлаТела   проходит всё хорошо и файл загружается. НО не могу передать параметры как написано в справке API
2 SiAl-chel
 
14.09.15
07:49
(0) Параметры и тело запроса - разные вещи. Кусок кода дай.
3 SashaInbo
 
14.09.15
14:17
(2)

//Заголовки
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "application/octet-stream");
Заголовки.Вставить("Authorization", КодДоступа);

//Подключение и запрос (GET)
Соединение = Новый HTTPСоединение("http://www.*******.*",443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("****/upload?type=1&from=3", Заголовки);

//Отсылаю файл
имяВыходногоФайла = ПолучитьимяВременногоФайла("html");
Запрос.УстановитьИмяФайлаТела(Файл);
Соединение.ОтправитьДляОбработки(Запрос, имяВыходногоФайла);

//В итоге файл отсылается правильно, дохидся и загружается.
//НО как отправить POST параметры? типа
//status=public&name=1111&descr=111


//Пробовал сувать параметры в заголовок - не работает, в адрес запроса - не работает
4 SiAl-chel
 
15.09.15
07:39
(3) А это что?
upload?type=1&from=3
Разве не параметры?
5 magicSan
 
15.09.15
08:02
(4) это гет запрос
6 SiAl-chel
 
15.09.15
08:06
(5) Ты же отправляешь данные, а это GET. Разве нет?
7 magicSan
 
15.09.15
08:07
(6) нет. У него в первом параметры не хватает соответсвия там заголовки пишутся
8 magicSan
 
15.09.15
08:07
(6) *Это параметры гет запроса а ему надо пост.
9 SiAl-chel
 
15.09.15
08:07
10 magicSan
 
15.09.15
08:13
(9) иди начни с переменых окружения чтоли может тогда что поймешь.
11 magicSan
 
15.09.15
08:17
А ну ясно, он на стороне сервера не верно ловит скорее всего.
12 SiAl-chel
 
15.09.15
08:31
(9) Чего?
13 fishb1
 
15.09.15
09:12
В Google обычно все параметры в заголовках передаются. Скорее всего вы неправильно поняли.

В тип содержимого application/octet-stream и параметры и данные запроса не запихать. Для этого нужно использовать тип "multipart/...". Не думаю, что 1С умеет в него кодировать, и скорее всего, нужно будет тело запроса формировать вручную.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс