Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.29;
Скачать: CL | DM;

Вниз

Как правильно сформировать POST запрос?   Найти похожие ветки 

 
DVM ©   (2006-11-08 18:23) [0]

Отсылаю данные посредством Winsock, не используя никаких компонентов, запрос такой:


     FRequest := "POST " + FPath + " HTTP/" + FHTTPVersion + #13#10 +
                 "Connection: keep-alive" + #13#10 +
                 "Content-Type: application/x-www-form-urlencoded" + #13#10 +
                 "Content-Length: " + inttostr(Length(FParams)) + #13#10 +
                 "Host: " + FHost + #13#10 +
                 "Accept: text/html, */*" + #13#10 +
                 "User-Agent: user" + #13#10 +
                 "Authorization: Basic " + EncodeBase64(FUserName + ":" + FPassword) + #13#10#13#10;
     FRequest := FRequest + FParams;


В результате на сервер (по данным снифера отправляется)

POST /IOCONTROL.CGI HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 49
Host: 192.168.0.20
Accept: text/html, */*
User-Agent: user
Authorization: Basic Og==

Trigger1=1&Trigger2=1&ImageUpload=0&ImageEmail=0&


Но такой запрос не срабатывает (не делает того что надо)

То же самое проделанное через Indy срабатывает (отправляется следующее):


POST /IOCONTROL.CGI HTTP/1.0
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 49
Host: 192.168.0.20
Accept: text/html, */*
User-Agent: user
Authorization: Basic Og==

Trigger1=1&Trigger2=1&ImageUpload=0&ImageEmail=0&


Почему так?

Get запрос у меня отправляется нормально.


 
DVM ©   (2006-11-08 18:25) [1]

Может дело в том, что я не читаю ответ сервера после выполнения запроса?
Но почему тогда GET в этом случае работает нормально?


 
Ketmar ©   (2006-11-08 19:07) [2]

а) хм. keep-alive и http/1.0? нафига вообще тут keep-alive?
б) попробуй заменить #13#10 на #10. иногда помогает.


 
DVM ©   (2006-11-08 22:51) [3]


> а) хм. keep-alive и http/1.0? нафига вообще тут keep-alive?

Я просто стал точно копировать запрос Инди, как рабочий. А у них так.


> б) попробуй заменить #13#10 на #10. иногда помогает.

Не мне не помогло.

Разобрался я в чем дело. Надо как я и думал все таки вычитывать ответ сервера на запрос. Каким то серверам по барабану это, другим нет.


 
Орион ©   (2006-11-08 23:30) [4]

> [2] Ketmar ©   (08.11.06 19:07)
> а) хм. keep-alive и http/1.0? нафига вообще тут keep-alive?

Сервер просто проигнорирует это поле в лучшем случае, в худшем - 304 Bad request.


 
Ketmar ©   (2006-11-09 01:25) [5]

>[4] Орион(c) 8-Nov-2006, 23:30
>худшем - 304 Bad request.
вот-вот.


 
o_serg   (2006-12-25 13:03) [6]

думаю новую тему создавать не зачем, спрошу здесь:
Мне нужно загрузить из инета одну страничку, как и чем это сделать, чтобы  программа как можно меньше прибавила в весе?
З.Ы. с сетевыми компонентами никогда не работал, можно подробнее плиз и лучше с примерами.


 
Dmitrij_K   (2006-12-25 14:01) [7]


> o_serg   (25.12.06 13:03) [6]
>
> думаю новую тему создавать не зачем, спрошу здесь:
> Мне нужно загрузить из инета одну страничку, как и чем это
> сделать, чтобы  программа как можно меньше прибавила в весе?
>
> З.Ы. с сетевыми компонентами никогда не работал, можно подробнее
> плиз и лучше с примерами.


UrlDownloadToFile()



Страницы: 1 вся ветка

Текущий архив: 2007.07.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
15-1183459403
исследователь
2007-07-03 14:43
2007.07.29
Подскажите с покупкой


2-1183651575
Sergey_G
2007-07-05 20:06
2007.07.29
Сортировка


11-1166288757
Psychedelic
2006-12-16 20:05
2007.07.29
Win XP Tab контрол компонент


15-1183475164
TUser
2007-07-03 19:06
2007.07.29
Американская ПРО


2-1183361301
Dyakon_Frost
2007-07-02 11:28
2007.07.29
Как присвоить один код для многих компонентов одного типа