Re[9]: Проблема с запросом НTTPSend
От: okman Беларусь https://searchinform.ru/
Дата: 21.05.12 05:54
Оценка:
Здравствуйте, surovnev, Вы писали:

S>Ну это я уже приблизительно понял. Вот этот ID как раз и присваивается когда открываешь главную страницу. И как я понял без разницы какой он главное чтоб был уникальный. Вот только как его передать вместе с запросом. т.е. как реализовать программно


S>...


S>я методом тыка и примерами из инета кое как реализовал (т.е. картинку загружает) вот только как теперь с этой картинкой передать


S>я не знаю... не знаю какой командой или запросом...


Ну вот смотрите.
  Клиент заходит на сайт

GET / HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62
Host: picupic.net
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Connection: Keep-Alive


  А сервер ему и отвечает

HTTP/1.1 200 OK
Server: nginx/0.6.36
Date: Mon, 21 May 2012 05:29:49 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.2.17
Set-Cookie: PHPSESSID=9bkckpg09o8i5oqe0kbbfvgl53; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 3923

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Фотохостинг,Хостинг картинок,Бесплатный хостинг фотографий.</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<link ..............

Обратите внимание на заголовок Set-Cookie — там прописан id клиента, присвоенный сервером.

  Щелкаю 'отобразить миниатюры одной картинкой'

POST / HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62
Host: picupic.net
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://picupic.net/
Cookie: PHPSESSID=9bkckpg09o8i5oqe0kbbfvgl53
Connection: Keep-Alive
Content-Length: 323
Content-Type: multipart/form-data; boundary=----------QgAK0HI9VuWMH0kEyRVTHi
Тело запроса — множественное
Часть 1
Content-Disposition: form-data; name="size_multi"
80
Часть 2
Content-Disposition: form-data; name="toone"
1
Часть 3
Content-Disposition: form-data; name="file_upload"; filename=""

В Cookie клиент передает id, выданный сервером.
Части multipart-запроса — это параметры будущей загрузки картинки.
Например, size_multi — это размер превьюшек.
В данном запросе он пока 80 (то есть, 80 на 80 пикселей).

  Устанавливаю размер превью 150 на 150

POST / HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62
Host: picupic.net
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://picupic.net/
Cookie: PHPSESSID=9bkckpg09o8i5oqe0kbbfvgl53
Connection: Keep-Alive
Content-Length: 411
Content-Type: multipart/form-data; boundary=----------HOVnBcZ97JvReeL9wSog8M
Тело запроса — множественное
Часть 1
Content-Disposition: form-data; name="size_multi"
150
Часть 2
Content-Disposition: form-data; name="toone"
1
Часть 3
Content-Disposition: form-data; name="color"
0
Часть 4
Content-Disposition: form-data; name="file_upload"; filename=""

Снова Cookie. К чему бы это ?
Кстати, размер превью теперь 150 на 150. См. выделенное.

  Делаю черный цвет фона

POST / HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62
Host: picupic.net
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://picupic.net/
Cookie: PHPSESSID=9bkckpg09o8i5oqe0kbbfvgl53
Connection: Keep-Alive
Content-Length: 411
Content-Type: multipart/form-data; boundary=----------X6jN5dvwAF93bNePGRg07B
Тело запроса — множественное
Часть 1
Content-Disposition: form-data; name="size_multi"
150
Часть 2
Content-Disposition: form-data; name="toone"
1
Часть 3
Content-Disposition: form-data; name="color"
1
Часть 4
Content-Disposition: form-data; name="file_upload"; filename=""

color=1 — это, очевидно, означает черный цвет.
Пока я его не поменял, было color=1 (см. предыдущие запросы).

  И, наконец, загружаю картинку

POST /add_photo.php HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.62
Host: picupic.net
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://picupic.net/
Cookie: PHPSESSID=9bkckpg09o8i5oqe0kbbfvgl53
Connection: Keep-Alive
Content-Length: 257305
Content-Type: multipart/form-data; boundary=----------h6PznwZWpAXR2ZgQ5I4bBG
Тело запроса — множественное
Часть 1
Content-Disposition: form-data; name="size"
80
Часть 2
Content-Disposition: form-data; name="UploadFile"; filename="Безымянный.jpg"
Content-Type: image/jpeg
Тело запроса 256933 байт
Часть 3
Content-Disposition: form-data; name="but_addphoto2"

По этой части, надеюсь, вопросов нет.


В том, чтобы "отреверсить" протокол, а потом заставить свое приложение выполнять то же самое,
нет ничего сложного, нужна лишь внимательность и аккуратность. Типы параметров, а также их
значения, Вы сможете легко получить, щелкая элементы управления на странице загрузки и
изучая запросы-ответы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.