CURL コマンドを使用してインスタンスへの SOAP コールを行う方法Descriptionこの記事では、CURL コマンドを使用してインスタンスへの SOAP コールを行う方法について説明します。これは、SOAP API を使用する際に発生するお客様関連の問題のトラブルシューティングに役立ちます。 手順 SOAP 要求フロー ステップ 1: A. 送信する必要がある要求を含む SOAP エンベロープを作成します。 注: SOAP 要求パラメーターは、WSDL が公開するパラメーターによって異なります。 B. XML ファイル (例:test.xml) として保存します。 ステップ 2: ターミナルに入力する CURL コマンドを作成します。 curl --username:password --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction: ACTION_YOU_WANT_TO_CALL" --data @FILE_NAME URL_OF_THE_SOAP_WEB_SERVICE_ENDPOINT 例 1:「インスタンス」から WSDL を使用している場合 curl --user xyz:abc123 --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:Get" --data @test.xml https://.service-now.com/incident.do?SOAP 例 2:「ノード」から WSDL を使用している場合 curl --user xyz:abc123 --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:Get" --data @test.xml https://.service-now.com:/incident.do?SOAP ステップ 3: ターミナルまたはコマンドプロンプトでコマンドを実行します。 トラブルシューティング: 予期した出力が得られない場合は、CURL コマンドに詳細パラメーターを追加することにより、詳細情報が表示されます。 詳細パラメーターを指定した CURL コマンドの例: curl --user xyz:abc123 --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:Get" --data @test.xml https://.service-now.com/incident.do?SOAP -v 発生する可能性がある一般的な問題: 1. 要求を含むファイルを読み取れない エラー: SOAP-ENV:ServerUnable to parse SOAP documentError completing SOAP request 解決策:SOAP 要求を含むファイルの内容と形式を確認します。 2. 指定されたユーザーの資格情報が間違っているか、ユーザーに WSDL へのアクセスが許可されない エラー: ......< HTTP/1.1 401 Unauthorized< Set-Cookie: JSESSIONID=5C48D05E518DC37DA6502440F2FD8361; Path=/; HttpOnly;Secure* Authentication problem. Ignoring this....... 解決策:ユーザーの資格情報を確認し、ユーザーがレコードにアクセスできないようにブロックしている ACL がないか調べます。 3. WSDL が不適切/間違っている エラー: * Could not resolve host: * Closing connection 0curl: (6) Could not resolve host: URL_OF_THE_SOAP_WEB_SERVICE_ENDPOINT 解決策:CURL コマンドで正しい URL が指定されていることを確認します。 Additional InformationSOAP メッセージSOAP のロールSOAP メッセージ関数SOAP デフォルトセキュリティ方針