|
Отправка файл через 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Соединение(",,,,, Новый ЗащищенноеСоединение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
|
(7) На, тут почитай.
|
|
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С умеет в него кодировать, и скорее всего, нужно будет тело запроса формировать вручную.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший