Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2017, 22:03   #1
The Rimmidlav
 
Регистрация: 28.03.2013
Сообщений: 6
По умолчанию Отправка изображения на сервер. XE7+Synapse

Привет всем. Нужна помощь в загрузке изображения на сервер.
Нужно отправить изображение на сервер vk.

Итак по порядку.
Первым делом я авторизуюсь. Все проходит успешно, получаю куки прохожу по редиректам. Готово.
Парсю ссылку куда отправляеться изображение. (при этом полностью сверяюсь со снифером, что да куда)
Формирую пост запрос multipartdata вот собственно код.

PHP код:
HTTP.Protocol:= '1.1';
  
HTTP.UserAgent:='Mozilla/5.0 (Windows NT 6.1; rv:48.0) Gecko/20100101 Firefox/48.0';
  
HTTP.Headers.Add('Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
  
HTTP.Headers.Add('Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3');
  
HTTP.Headers.Add('Accept-Encoding:gzip, deflate, br');
  
HTTP.Headers.Add('DNT:1');
  
HTTP.Headers.Add('Referer:[url]https://m.vk.com/my_joinery');
  
HTTP.Headers.Add('origin:[url]https://m.vk.com');
FS:=TmemoryStream.Create;
  
FS.LoadFromFile('logo.jpg');
 
      
HTTP.MimeType :='multipart/form-data; boundary=-----------------------------24941620111984';
 
      
:= '-----------------------------24941620111984' CRLF +
        
'Content-Disposition: form-data; name="photo"; filename="logo.jpg"'
        
CRLF 'Content-Type: image/jpeg' CRLF CRLF;
 
      
HTTP.Document.Write(PAnsiChar(s)^, Length(s));
      
FS.Position := 0;
      
// записываем файл в тело документа
      
HTTP.Document.CopyFrom(FSFS.Size);
      
FreeAndNil(FS);
    { 
завершаем тело запроса }
    
:= CRLF+'-----------------------------24941620111984--'+CRLF;
    
HTTP.Document.Write(PAnsiChar(s)^, Length(s)); // завершили тело документа
    // Отправляем запрос
  
HTTP.HTTPMethod('POST'location); 
Ну и отправляю запрос.
(при этом все совпадает со снифером, т.е заголовки, спуски строк)
При отпраке через браузер (когда снифал) изображение удачно отправляеться, и приходит ответ json что изображение загружено в такой то альбом, ну и ссылка.

А вот когда я пытаюсь отправить через программу

То в ответ мне приходит.
JSON
Выделить код

1



{"error":"ERR_BAD_INPUT_DATA: no input photo files found","bwact":"album_photo","_fwad d":"wall-50003423","server":804924,"mid":185 249119,"_sig":"0577d500ed05edcf58d9 675c6f080000"}.

Что я делаю не так...?
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
The Rimmidlav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Synapse отправка XML tarakan1983 Компоненты Delphi 0 20.01.2016 15:28
GDI+ ошибка при загрузке изображения из ресурсы | XE7 -Jack- C++ Builder 0 23.08.2015 18:42
Отправка письма Synapse hapera2 Работа с сетью в Delphi 1 17.08.2015 23:48
Отправка изображения на сервер. victor5133 PHP 2 01.10.2013 04:43
Отправка изображения на сервер qwq C# (си шарп) 1 20.07.2013 20:57