Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Post запрос с отправлением картинки

Post запрос с отправлением картинки
Я
   Snikersik
 
23.10.19 - 12:32
По вот этому примеру нужно сделать post запрос.

<?php // INPUT $user = ''; $secret = ''; $image_path = ''; // WORK $sign = $user . md5_file($image_path) . $secret; $sign = md5($sign); $data = [ 'login' => $user, 'image' => curl_file_create($image_path), 'sign' => $sign, ]; $ch = curl_init('https://media.sms-online.com/upload/'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $result = json_decode(curl_exec($ch), true); curl_close($ch); if (!empty($result['image_id'])) { $imageId = $result['image_id']; } else { throw new \Exception($result['error'], [], $result['status']); }

Все бы хорошо, но не видит картинку {
  "status": 1,
  "error": "Mandatory parameters missing: image"
}

Передавал двоичные данные, Base64 , что только не передавал, даже просто путь картинки.
Вопрос в чем, может кто знает, что делает вот этот запрос - curl_file_create($image_path), он создает объект CURLFile, а вот что именно в этом объекте, как передать это в 1с?
 
 
   ДенисЧ
 
1 - 23.10.19 - 12:35
Мда... Птичий язык какой-то... Wtite-only...
   Garykom
 
2 - 23.10.19 - 12:43
(0) Могу дат полезную ссылку, но сразу скажу не поможет.
https://tools.ietf.org/html/rfc2616
   Snikersik
 
3 - 23.10.19 - 14:35
(2) Нужно отправить картинку, но двоичные данные не видити, Base64строка(Новый ДвоичныеДанные(моякартинка)) так же не видит, путь просто картинки аналогично. Тех. поддержка прислала пример, в PHP получается сделать так, а вот через 1с пока нет..
   sitex
 
4 - 23.10.19 - 14:49
(0) ну может код покажешь сообществу что передаешь или будем толпой гадать что у тебя там ?
   arsik
 
5 - 23.10.19 - 14:51
(0) Пусть тебе дадут пример с консольным curl-ом. Дальше сам все поймешь.
   Snikersik
 
6 - 23.10.19 - 14:53
Сайт = "media.sms-online.com";
Parameters = New Structure;
Parameters.Insert("login",Логин);
Parameters.Insert("image",Картинка);
Parameters.Insert("sign",ХешСигн);


HTTPСоединение = Новый HTTPСоединение(Сайт,,,,,,Новый ЗащищенноеСоединениеOpenSSL);

HTTPЗапрос  = Новый HTTPЗапрос("/upload/");
Запись             = Новый ЗаписьJSON;
ПараметрыJSON     = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, " "Истина);  
Запись.УстановитьСтроку(ПараметрыJSON);
ЗаписатьJSON(Запись, Parameters);
ЗаписьJSON = Запись.Закрыть();

HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data;boundary=");

HTTPЗапрос.УстановитьТелоИзСтроки(ЗаписьJSON,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);

ОтветHTTP = HTTPСоединение.Post(HTTPЗапрос);
   Snikersik
 
7 - 23.10.19 - 14:57
(6) HTTPЗапрос.Заголовки.Вставить("Content-Type", "multipart/form-data"); *******
   sitex
 
8 - 23.10.19 - 14:57
(6)кури заголовки....
   sitex
 
9 - 23.10.19 - 15:00
(6) И вообщем посмотри как картинка выглядит в base64. Онлайн ресурсов перевода картинки в строку полно .
   Snikersik
 
10 - 23.10.19 - 15:03
(9) Переводил в base64 , кидал в RESTED на проверку , все равно не видит image

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.