1. ホーム
  2. asp-classic

[解決済み] MSXML2.ServerXMLHTTP を使用して、他のサイトからデータを取得するにはどうすればよいですか?

2022-02-18 16:37:52

質問

以下のようなリンクがあります。 http://mvp.sos.state.ga.us/

MVPのページの情報を再現するためにDBを作成するのではなく、独自のフォームを使用し、裏側でMSXML2.ServerXMLHTTPというコンポーネントを使って上記のサイトに情報を送り、結果を返したいと考えています。

残念ながら、このコンポーネントについて、またその使用方法について、私は何も知りません。

どなたか親切な方、上記のサイトに情報を送り、その結果を私たちのフォームに戻すために、私たち独自の...を使用する方法についてのポインタを教えていただけませんでしょうか?

私たちは基本的に、ユーザーに姓、名、県、生年月日を入力してもらおうとしています。

ありがとうございます。

解決方法は?

このコンポーネントは、"POST", "GET", "DELETE" などの httpリクエストに使用することができます。

オブジェクトを作成する。

<%
    Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
%>

GET"メソッドでデータを送信します。

<%
    objXML.Open "GET", "http://mvp.sos.state.ga.us/?some=querystring", false 
    objXML.Send ""
    Response.Write objXML.responseText
%>

Openメソッドには3つのパラメータがあることに注意してください。 HTTPメソッド、URL、非同期呼び出し .

GET"のSendメソッドは、そのパラメータを無視することに注意してください。 (この場合、URL経由でパラメータを渡しています)。

POSTメソッドでデータを送信する場合。

<%
    objXML.Open "POST", "http://mvp.sos.state.ga.us/", false 
    objXML.Send "username=htbasaran&password=somepassword"
    Response.Write objXML.responseText
%>

POSTの場合、SendメソッドはKey-Valueペアの形式でパラメータを渡すことに注意してください。 key1=value1&key2=value2&so=on...です。 またはXML、JSONなどの他のデータ)

以上が、このコンポーネントの基本です。より詳細な情報が必要な場合は マイクロソフトのドキュメントページ を出力します。

フォームの値を取得し、xmlhttpのpostメソッドを使って送信するサンプルコードです。

<%
    ' getting form values
    my_uname = Request.Form("username")
    my_pword = Request.Form("password")

    ' creating object
    Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")

    ' sending variables to an external site
    objXML.Open "POST", "http://www.sitename.com/login.asp", false
    objXML.Send "username=" & my_uname & "&password=" & my_pword

    ' Assuming that successful login will return response "Ok"
    ' writing the result to the client.
    if objXML.responseText="Ok" then
        Response.Write "Login Successful!"
    else
        Response.Write "Login Failed!"
    end if
%>