![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно сформировать POST запрос? [D7, WinXP]
DVM © (2006-11-08 18:23:00)Отсылаю данные посредством 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 запрос у меня отправляется нормально.
Dmitrij_K (2006-12-25 14:01:00) [1]
> o_serg (25.12.06 13:03) [6]
>
> думаю новую тему создавать не зачем, спрошу здесь:
> Мне нужно загрузить из инета одну страничку, как и чем это
> сделать, чтобы программа как можно меньше прибавила в весе?
>
> З.Ы. с сетевыми компонентами никогда не работал, можно подробнее
> плиз и лучше с примерами.
UrlDownloadToFile()
o_serg (2006-12-25 13:03:00) [2]думаю новую тему создавать не зачем, спрошу здесь:
Мне нужно загрузить из инета одну страничку, как и чем это сделать, чтобы программа как можно меньше прибавила в весе?
З.Ы. с сетевыми компонентами никогда не работал, можно подробнее плиз и лучше с примерами.
Ketmar (2006-11-09 01:25:00) [3]>[4] Орион(c) 8-Nov-2006, 23:30
>худшем - 304 Bad request.
вот-вот.
Орион (2006-11-08 23:30:00) [4]> [2] Ketmar © (08.11.06 19:07)
> а) хм. keep-alive и http/1.0? нафига вообще тут keep-alive?
Сервер просто проигнорирует это поле в лучшем случае, в худшем - 304 Bad request.
DVM (2006-11-08 22:51:00) [5]
> а) хм. keep-alive и http/1.0? нафига вообще тут keep-alive?
Я просто стал точно копировать запрос Инди, как рабочий. А у них так.
> б) попробуй заменить #13#10 на #10. иногда помогает.
Не мне не помогло.
Разобрался я в чем дело. Надо как я и думал все таки вычитывать ответ сервера на запрос. Каким то серверам по барабану это, другим нет.
Ketmar (2006-11-08 19:07:00) [6]а) хм. keep-alive и http/1.0? нафига вообще тут keep-alive?
б) попробуй заменить #13#10 на #10. иногда помогает.
DVM (2006-11-08 18:25:00) [7]Может дело в том, что я не читаю ответ сервера после выполнения запроса?
Но почему тогда GET в этом случае работает нормально?