- - 索引 - -
1.ソープリクエスト方法
2.投稿リクエスト方法
3. SHOWALLNODE関数(ノード属性とデータ表示について)
------------------------
1つ。 SOAP リクエストの例 以下に SOAP リクエストの例を示します。表示されているプレースホルダーは実際の値に置き換える必要があります。
POST /WebService1/UserSignOn.asmx HTTP/1.1
ホスト: 192.100.100.81
コンテンツタイプ: text/xml;
Content-Length: 長さ
SOAPAction: " http://tempuri.org/LoginByAccount "
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd=" http://www.w3.org/2001/XMLSchema " xmlns:soap=" http ://schemas.xmlsoap.org/soap/envelope/ ">
<石鹸:本体>
<LoginByAccount xmlns=" http://tempuri.org/ ">
<ユーザー名>文字列</ユーザー名>
<パスワード>文字列</パスワード>
</アカウントによるログイン>
</soap:ボディ>
</soap:エンベロープ>
WEBSERVICE と対話するには、上記とまったく同じように SOAP リクエストを作成する必要があります。
<%
URL = " http://192.100.100.81/WebService1/UserSignOn.asmx "
SoapRequest="<?xml version="&CHR(34)&"1.0"&CHR(34)&" エンコーディング="&CHR(34)&"utf -8"&CHR(34)&"?>"& _
"<soap:Envelope xmlns:xsi="&CHR(34)&" http://www.w3.org/2001/XMLSchema-instance"&CHR(34 )&" "& _
"xmlns:xsd="&CHR(34)&" http://www.w3.org/2001/XMLSchema"&CHR(34 )&" "& _
"xmlns:soap="&CHR(34)&" http://schemas.xmlsoap.org/soap/envelope/"&CHR(34 )&">"& _
"<soap:Body>"& _
"<LoginByAccount xmlns="&CHR(34)&" http://tempuri.org/"&CHR(34 )&">"& _
"<ユーザー名>"&ユーザー名&"</ユーザー名>"& _
"<パスワード>"&パスワード&"</パスワード>"& _
"</LoginByAccount>"& _
"</soap:Body>"& _
"</soap:Envelope>"
xmlhttp = server.CreateObject("Msxml2.XMLHTTP") を設定します
xmlhttp.Open "POST",url,false
xmlhttp.setRequestHeader "Content-Type"、"text/xml;charset=utf-8"
xmlhttp.setRequestHeader "HOST","192.100.100.81"
xmlhttp.setRequestHeader "コンテンツの長さ",LEN(SoapRequest)
xmlhttp.setRequestHeader "SOAPAction", " http://tempuri.org/LoginByAccount " 'WEBSERVICE と同じ名前空間である必要があります。そうでない場合、サービスは拒否されます。
xmlhttp.Send(SoapRequest)
'これにより、XMLHTTP を使用した SOAP の例と一致する SOAP リクエストが正常に送信されます。
'成功したかどうかを確認します:
Response.Write xmlhttp.Status&” ”
Response.Write xmlhttp.StatusText
xmlhttp = なしを設定します
%>
成功すると「200 ok」が表示され、失敗すると「500 Internal Server Error: keep-alive」が表示されます。
成功したら、次のように WEBSERVICE の応答を使用できます。
SOAP 応答の例 以下は SOAP 応答の例です。表示されているプレースホルダーは実際の値に置き換える必要があります。
HTTP/1.1 200 OK
コンテンツタイプ: text/xml;
Content-Length: 長さ
<?xml version="1.0"coding="utf-8"?>
<soap:Envelope xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd=" http://www.w3.org/2001/XMLSchema " xmlns:soap=" http ://schemas.xmlsoap.org/soap/envelope/ ">
<石鹸:本体>
<LoginByAccountResponse xmlns=" http://tempuri.org/ ">
<LoginByAccountResult>文字列</LoginByAccountResult>
</LoginByAccountResponse>
</soap:ボディ>
</soap:エンベロープ>
これは、先ほどの SOAP リクエストの例に対応する SOAP レスポンスの例です。リクエストが正常に送信された後、レスポンスを表示できます。
xmlhttp.Status = 200 の場合、
xmlDOC =server.CreateObject("MSXML.DOMDocument") を設定します。
xmlDOC.load(xmlhttp.responseXML)
xmlStr = xmlDOC.xml
xmlDOC=nothing を設定します
xmlStr = Replace(xmlStr,"<","<")
xmlStr = Replace(xmlStr,">",">")
Response.write xmlStr
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
リクエストが正しい場合は、完全な応答が返されます。リクエストが正しくない場合(たとえば、アカウント番号とパスワードが間違っている場合)、応答内容は不完全になります。
次のように応答内のデータを取得します。
xmlhttp.Status = 200 の場合、
xmlDOC = server.CreateObject("MSXML.DOMDocument") を設定します。
xmlDOC.load(xmlhttp.responseXML)
Response.Write xmlDOC.documentElement.selectNodes("//LoginByAccountResult")(0).text 'ノードが LoginByAccountResult であるデータを表示します (エンコードされている場合はデコードする必要があります)
Set xmlDOC = nothing
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if は
ノードの各属性とデータの FUNCTION を表示します:
Function showallnode(rootname,myxmlDOC)' 2005-1-9 に作成された 844 を皆さんが引き続き完成することを願っています。
if rootname<>"" then
set nodeobj=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"")'現在のノード オブジェクト
nodeAttributelen=myxmlDOC.documentElement.selectSingleNode("//"&rootname&"").attributes.length'ノード属性の現在の数
returnstring=returnstring&"<BR>ノード名: "&rootname
if nodeobj.text<>"" then
returnstring=returnstring&"<BR>ノードのテキスト: ("&nodeobj.text&")"
end if
returnstring=returnstring&"<BR>{<BR>"
if nodeAttributelen<>0 then
returnstring=returnstring&"<BR>「&nodeAttributelen&」属性は次のとおりです。
i=0 から nodeAttributelen-1 の
場合に終了
returnstring=returnstring&"<li>"&nodeobj.attributes(i).Name&": "&nodeobj.getAttribute(nodeobj.attributes(i).Name)&" </li>"
次の
場合、nodeobj.childNodes.Length<>0 then
if nodeobj.hasChildNodes() および lcase(nodeobj.childNodes.item(0).nodeName)<>"#text" then'子ノードがあるかどうか
set childnodeobj=nodeobj.childNodes
childnodelen=nodeobj.childNodes.Length
returnstring=returnstring&"<BR><BR>「&childnodelen&」子ノードがあります。<BR>それらは次のとおりです: "
i=0 から childnodelen-1 まで
returnstring=returnstring&"<li>"&childnodeobj.item(i).nodeName&"</li>"
次
終了する場合
end if
returnstring=returnstring&"<BR>}<BR>"
応答.書き込み戻り文字列
ノードオブジェクト=何も設定しない
終了する場合
終了機能
次のように使用できます。
xmlhttp.Status = 200 の場合、
xmlDOC = server.CreateObject("MSXML.DOMDocument") を設定します。
xmlDOC.load(xmlhttp.responseXML)
showallnode "LoginByAccountResponse",xmlDOC'Call SHOWALLNODE
Set xmlDOC = nothing
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
の場合は終了します
。 POSTリクエストの例
HTTPポスト
以下は HTTP POST リクエストの例です。表示されているプレースホルダーは実際の値に置き換える必要があります。
POST /WebService1/UserSignOn.asmx/LoginByAccount HTTP/1.1
ホスト: 192.100.100.81
コンテンツタイプ: application/x-www-form-urlencoded
Content-Length:
ユーザー名=文字列&パスワード=文字列
の長さ
POST リクエストを作成します。
<%
URL = " http://192.100.100.81/WebService1/UserSignOn.asmx/LoginByAccount "
SoapRequest="username="&username&"&password="&password
Set xmlhttp = server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open "POST",url,false
xmlhttp.setRequestHeader "Content-Type"、"application/x-www-form-urlencoded"'注
xmlhttp.setRequestHeader "HOST","192.100.100.81"
xmlhttp.setRequestHeader "Content-Length",LEN(SoapRequest)
xmlhttp.Send(SoapRequest)
'これにより、XMLHTTP を使用した HTTP POST の例と一致する POST リクエストが正常に送信されます。
'成功したかどうかを確認します:
Response.Write xmlhttp.Status&” ”
Response.Write xmlhttp.StatusText
xmlhttp = なしを設定します
%>
成功すると、「200 ok」が表示されます。失敗すると、「500 Internal Server Error: keep-alive」が表示されます。
成功したら、次のように WEBSERVICE の応答を使用できます。
HTTPポスト
以下は HTTP POST 応答の例です。表示されているプレースホルダーは実際の値に置き換える必要があります。
HTTP/1.1 200 OK
コンテンツタイプ: text/xml;
Content-Length: 長さ
<?xml version="1.0"coding="utf-8"?>
<string xmlns=" http://tempuri.org/">string</string >
見せる:
xmlhttp.Status = 200 の場合、
xmlDOC = server.CreateObject("MSXML.DOMDocument") を設定します。
xmlDOC.load(xmlhttp.responseXML)
showallnode "string",xmlDOC'call SHOWALLNODE
Set xmlDOC = nothing
Else
Response.Write xmlhttp.Status&" "
Response.Write xmlhttp.StatusText
End if
上記は、ASP が XMLHTTP コンポーネントを使用して SOAP リクエストを送信し、WEBSERVICE を呼び出す方法です。より良い方法がある場合は、 mailto: [email protected]までご連絡ください。 HTTP GET メソッド 中国語は問題があり、データ量は多くありません。実際、上記の例では POST メソッドを使用していますが、これは POST リクエストではありません。 SOAP TOOLKITを使用するにはソフトウェアをインストールする必要があり、後継バージョンはありません。 ---全文終わり