2

PHP で適切な SOAP 呼び出しを作成するのに問題があります。SOAP UI で次の呼び出しをテストして動作しましたが、オブジェクト、配列、SOAPHeaders の作成からすべてを試しましたが、正しい呼び出しを取得できないようです。SOAP UI で機能するリクエストは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="com.dtn.aghost.API.subscriptions">
    <soapenv:Header>
        <com:ServiceCredentials>
            <usernamePasswordCombo>
                <username>[username]</username>
                <password>[password]</password>
            </usernamePasswordCombo>
        </com:ServiceCredentials>
    </soapenv:Header>
    <soapenv:Body>
        <com:SubscriptionServiceIdList>
            <visible>1</visible>
        </com:SubscriptionServiceIdList>
    </soapenv:Body>
</soapenv:Envelope>

ありがとう!

4

1 に答える 1

0

あなたのリクエストには、あなたがすでに試したことに関する情報がほとんど含まれていないため、いくつか質問がありました。使用しようとしたコードの一部と、その情報を取得するために参照したリソースの一部を追加することをお勧めします。さらに、試した結果を説明していただけると、ご要望にお答えするのに役立ちます。エラーがあった場合、どのようなエラーが表示されましたか?

SOAP Web サービスに接続する PHP コードの例を取得するには、Soap Clientに関する PHP ドキュメントを参照することをお勧めします。

そのページのコメントには、他の人が使用したコードの例があります。あなたの目的のためにそれを使用するためにそれを適応させることができます。

SOAP Web サービスに接続するコードの例として

<?php

    $http_client = 'http://example.com/MyService.asmx?wsdl';

    $client = new SoapClient($http_client, array(
        'style' => SOAP_DOCUMENT,
        'use' => SOAP_LITERAL,
        'soap_version'=>SOAP_1_1,
        'trace' => 1,
        'connection_timeout' => 300));

    $params = array( 'username' => $user_name, 'password' => $password);

    $results = $client->myFunction($params);

    // Debug code can be added after this

?>

もう 1 つ必要なことは、リクエストの結果をデバッグすることです。上記の例では、trace の値を 1 に設定しています。これにより、発生した SOAP リクエストをデバッグできます。次のコードでそれを行うことができます。

    // Debug code

    echo $client->__getLastRequestHeaders();
    echo $client->__getLastRequest()
    echo $client->__getLastResponseHeaders();
    echo $client->__getLastResponse();

PHP SoapClient getLastResponse

最後に、is_soap_faultを使用して、リクエストが失敗したかどうかを判断できます。発生したエラー コードを取得するための適切なコード例が PHP ドキュメントにいくつかあります。

于 2014-01-22T23:19:18.950 に答える