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リクエストを送信する必要があり、その機能はそれを行いません。
誰かが私に簡単な例を表示できますか?私が望む結果は、http応答ページをvarの文字列として取得することです。
元の著者を引用できるように、コードのソースが見つかりました。私はコードを変更して誤ったブールケースのステートメントを削除し、リファラーを変更してFirefox 3.0.10であると主張し、主張しません。 –
どのユニットにParseURLが含まれているのか、それともカスタムルーチンが含まれているのかわかりません。 http://delphi.pastebin.com/f1ea3a752のコードは多少異なり、ParseURLを使用しません。 – lkessler
投稿リクエストにカスタムヘッダーの値をどのように追加しますか? – hikari