この記事では、MSXML2.SERVERXMLHTTP.3.0 を使用して POST リクエストを非同期に送信する ASP の方法を主に紹介します。必要な方は以下を参照してください。
場合によっては、リモート Web サイトから特定の情報を取得する必要があり、サーバーが GET メソッドを制限し、POST データを通じてのみ送信できるようになります。このような例は、インターネット上に多数あります。 。以下は私自身が書いた比較的簡潔でわかりやすい関数です。
まず、ASP は一般的に gbk であり、現在標準的な Web サイトのほとんどは utf-8 を使用しているため、エンコード設定の機能が必要です。したがって、変換が必要です。
次のようにコードをコピーします。
関数 BytesToBstr(body,Cset)
薄暗いオブジェクトストリーム
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.本体の書き込み
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
objstream = 何も設定しない
終了機能
2 番目のステップは、コンポーネントを使用して投稿データを送信することです。ここでは MSXML2.SERVERXMLHTTP.3.0 を使用しました。もちろん他のものを使用することもできます。
次のようにコードをコピーします。
関数 PostHTTPPage(url,data)
ディムHTTP
set Http=server.createobject("MSXML2.SERVERXMLHTTP.3.0")
http.open "POST",url,false
Http.setRequestHeader "CONTENT-TYPE"、"application/x-www-form-urlencoded"
Http.send(データ)
if Http.readystate<>4 then
終了関数
次の場合に終了
PostHTTPPage=bytesToBSTR(Http.responseBody,"utf-8")
http=何も設定しない
if err.number<>0 then err.Clear
終了機能
仕組みは次のとおりです。
次のようにコードをコピーします。
PostHTTPPage("www.vevb.com","str1=a&str2=b&str3=c")