掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WinInetを使って掲示板にPOSTするには (ID:9748)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
プログラムからインターネットの掲示板に書き込むアプリケーションを 作っています。 InternetOpenUrlを使って掲示板を読むことは出来るのですが 肝心の書き込みが出来ません。 POSTメソッドでパラメータIDとPASSWORDを渡そうとしているのですが HttpSendRequestでタイムアウトが発生しているようです。 返値としてFalseが返りecodeに12007が代入されます。 サンプルソースを示します。 引数は url1にhttp://掲示板のサーバー url2に掲示板の相対アドレス url3にcgi名 を入れているのですが自分でもよくわかっていません。 サーバーにPOSTする方法がありましたら教えてください。 お願いします。 function PostHtmlSource(const url1: string;const url2 : string;const url3: string): boolean; const UserAgent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)'; HeadStr = 'Content-Type: application/x-www-form-urlencoded'; var hSession: HINTERNET; hConnect : HINTERNET; hRequest: HINTERNET; hService: HINTERNET; dwBytesRead: Cardinal; s : string; ecode : Integer; dummy,BufLen : Cardinal; begin Result:=False; s := 'ID=TAKE&PASSWORD=9876'//POSTするパラメータ; hSession := InternetOpen(PChar(UserAgent), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try if Assigned(hSession) then begin hConnect := InternetConnect(hSession, Pchar(Url1), INTERNET_DEFAULT_HTTP_PORT, nil, nil, INTERNET_SERVICE_HTTP, 0, 0); hRequest := HttpOpenRequest(hConnect, 'POST',PChar(Url2),nil,PChar(Url3), nil, INTERNET_FLAG_RESYNCHRONIZE, 1); result := HttpSendRequest(hRequest, PChar(HeadStr),Length(HeadStr),Pchar(s),Length(s)); ecode := GetLastError(); end; finally InternetCloseHandle(hRequest); InternetCloseHandle(hConnect); InternetCloseHandle(hSession); end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.