![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть сайт freedebrid нужно отправить POST запрос и получить страницу с выполненным скриптом! Короче уже всякую фигню начал вставлять но приходит или таже страница либо вообще 0 байт! Помогите плиз!
Код:
Header:='document.forms['+Form1.sLabel22.Caption+'].submit();'+#13+'Content-Type: application/x-www-form-urlencoded';
hInet := InternetOpen('Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.6.37 Version/11.00',
PRE_CONFIG_INTERNET_ACCESS,
nil,
nil,
0);
hURL := InternetOpenURL(hInet,
PChar('http://www.freedebrid.fr/download'),
nil,
0,
INTERNET_FLAG_RELOAD,
0);
hRequest:=HttpOpenRequest(hURL,'POST',pchar(Header),nil,nil,0,0,0);
HttpSendRequest(hURL, pchar(Header),length(Header),PChar('post=mypostdata'), Length('post=mypostdata'));Последний раз редактировалось Admin, 25.12.2011 в 15:49. |
|
#2
|
||||
|
||||
|
Content-Type есть, а Content-Length?
|
|
#3
|
|||
|
|||
|
Цитата:
|
|
#4
|
||||
|
||||
|
правильный размер:
Код:
Length('post=mypostdata'); |
|
#5
|
|||
|
|||
|
Делаю так,запрос отправился но принимает в снифере показывает что в теле пост запроса буквы идут через пробел и соответственно запрос считается не верным т.е. нужно url=345, а отправляет u r l = 3 4 5!
Код:
procedure TFireThread.Execute;
var
Header,code,post:String;
sizex,indexx:Cardinal;
fBufing:array [1..1024] of byte;
ReadLen:Cardinal;
stoping:Boolean;
t:Cardinal;
f:file;
hurl,hinet,hRequest:HINTERNET;
begin
inherited;
sizex:=256;
indexx:=32;
stoping:=false;
post:='url='+Form1.sLabel22.Caption;
t:= Length(post);
Header:='Referer: http://www.freedebrid.fr/download'+#13+
'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' +#13+
'Accept-Language: ru,ru-RU;q=0.9,en;q=0.8 '+#13+
'Accept-Encoding:gzip, deflate'+#13+
'Connection: Keep-Alive '+#13+
'Content-Type: application/x-www-form-urlencoded';
hInet := InternetOpen('Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.10.229 Version/11.60',
INTERNET_OPEN_TYPE_PRECONFIG,
nil,
nil,
0);
hUrl:=InternetConnect(hInet,PChar('www.freedebrid.fr'),INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,0);
hRequest:=HttpOpenRequest(hURL,'POST',pchar('/download'),'HTTP/1.1',nil,0,0,0);
HttpSendRequest(hRequest,PChar(Header),Length(Header),PChar(post),t);
Form1.sRichEdit1.Lines.Add(Header);
AssignFile(f,ExtractFilePath(Application.ExeName)+'firebird.html');
Rewrite(f,1);
while stoping=false do
begin
InternetReadFile(hRequest, @fBufing, SizeOf(fBufing), ReadLen);
Form1.sRichEdit2.Lines.Add('Прочитанно'+' '+IntToStr(ReadLen));
if ReadLen=0 then begin
stoping:=true;
end else begin
BlockWrite(f, fBufing, ReadLen);
end;
end;
CloseFile(f);
InternetCloseHandle(hUrl);
InternetCloseHandle(hInet);
Terminate;
end;Последний раз редактировалось ProDaNTe, 25.12.2011 в 21:37. |
|
#6
|
||||
|
||||
|
Код не читал, но очень похоже, что запрос проходит в широких строках (aka WideString). В делфи начиная с N-ной версии (N~9) String стало синонимом WideString. Попробуйте использовать AnsiString.
|
|
#7
|
|||
|
|||
|
Bargest, Спасибо!
|