従来のasp(.netではない)でPOSTデータを使用してHTTPリクエストを作成するにはどうすればよいですか?
2 に答える
あなたはこのようなことを試すことができます:
Set ServerXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
ServerXmlHttp.open "POST", "http://www.example.com/page.asp"
ServerXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
ServerXmlHttp.setRequestHeader "Content-Length", Len(PostData)
ServerXmlHttp.send PostData
If ServerXmlHttp.status = 200 Then
TextResponse = ServerXmlHttp.responseText
XMLResponse = ServerXmlHttp.responseXML
StreamResponse = ServerXmlHttp.responseStream
Else
' Handle missing response or other errors here
End If
Set ServerXmlHttp = Nothing
ここで、PostDataは、投稿するデータです(たとえば、名前と値のペア、XMLドキュメントなど)。
インストールしたものと一致するように、MSXML2.ServerXMLHTTPの正しいバージョンを設定する必要があります。
openメソッドは5つの引数を取り、そのうち最初の2つだけが必要です。
ServerXmlHttp.open Method, URL, Async, User, Password
- 方法:「GET」または「POST」
- URL:投稿したいURL
- 非同期:デフォルトはFalseです(呼び出しはすぐには返されません)-非同期呼び出しの場合はTrueに設定されます
- ユーザー:認証に必要なユーザー名
- パスワード:認証に必要なパスワード
呼び出しが戻ると、statusプロパティはHTTPステータスを保持します。値200はOKを意味します-404は見つからないことを意味し、500はサーバーエラーなどを意味します(他の値についてはhttp://en.wikipedia.org/wiki/List_of_HTTP_status_codesを参照してください)。
応答は、テキスト(responseTextプロパティ)、XML(responseXMLプロパティ)、またはストリーム(responseStreamプロパティ)として取得できます。
既存のxmlhttpサーバーオブジェクトの1つを直接使用する必要があります。または、低レベルのものを抽象化することで作業を少し楽にするライブラリを使用することもできます。
URLをフェッチするajaxed実装を確認してください
短所:ライブラリを機能させるには、ライブラリを構成する必要があります。これがプロジェクトに必要かどうかわからない。