我想使用WinInet函數從Delphi發出HTTP請求。如何使用WinInet API在Delphi中發送HTTP POST請求
到目前爲止,我有:
function request:string;
var
hNet,hURL,hRequest: HINTERNET;
begin
hNet := InternetOpen(PChar('User Agent'),INTERNET_OPEN_TYPE_PRECONFIG or INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(hNet) then
begin
try
hURL := InternetConnect(hNet,PChar('http://example.com'),INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,DWORD(0));
if(hURL<>nil) then
hRequest := HttpOpenRequest(hURL, 'POST', PChar('param=value'),'HTTP/1.0',PChar(''), nil, INTERNET_FLAG_RELOAD or INTERNET_FLAG_PRAGMA_NOCACHE,0);
if(hRequest<>nil) then
HttpSendRequest(hRequest, nil, 0, nil, 0);
InternetCloseHandle(hNet);
except
on E : Exception do
ShowMessage(E.ClassName+' error raised, with message : '+E.Message);
end;
end
end;
但是,這並不做任何事情(我嗅探網絡的HTTP流量,看看它的工作原理)。 我已經成功地使用了InternetOpenURL,但是我也需要發送POST請求,並且那個函數沒有這樣做。
有人可以給我看一個簡單的例子嗎?我想要的結果是以var作爲字符串獲取http響應頁面。
我發現你的代碼的來源給你們,你們可以舉出原作者。我更改了代碼以刪除佈景錯誤的布爾語句,並且我更改了引用者,所以它不會撒謊並聲稱是Firefox 3.0.10。 – 2009-12-01 19:11:39
我找不到包含ParseURL的單元,或者它可能是一個自定義例程。代碼位於:http://delphi.pastebin.com/f1ea3a752有些不同,不會使用ParseURL。 – lkessler 2010-02-14 23:18:40
如何將自定義標題值添加到發佈請求中? – hikari 2016-04-12 23:24:31