0

私は単にパラメータを.net Webサービスに渡すようにphpを取得しようとしていますが、パラメータを呼び出しに追加することはありませんが、関数を呼び出します。

これがphpです:

$client = new SoapClient("example.com/page.asmx?WSDL");
$header = new SoapHeader('example.com/', 'UserCredentials', 
    array(
        'userName' => "cory", 
        'password' => "test", 
    )
);
$client->__setSoapHeaders(array($header));

print_r($client->add("test1234"));

ここに.netがあります

[WebMethod]
[SoapHeader( "consumer", Required = true )]
public string add( string id )
{
    if( id == null || id != "test1234" ) {
       return "ID Invalid: " + consumer.ToString() + ":::" + id;
    }
    return "good";
}

public class UserCredentials : System.Web.Services.Protocols.SoapHeader
{
    public string userName;
    public string password;

    public override string ToString()
    {
        return userName + ":" + password;
    }
}

これを実行するたびに印刷されます

stdClass Object ( [addResult] => ID Invalid: cory:test::: )

したがって、資格情報は適切に渡されますが、値は決して成功しません。ヘルプはありますか?

4

2 に答える 2

0

.NET は SOAP を正しく処理しません。もうコードにアクセスすることはできませんが、「パラメータ」という名前のキーの下にある別の連想配列でプロパティをラップするなど、ばかげたことをする必要があると思います。

これが、私のアプリケーションが機能するようになった私の回答済みの質問です。

于 2012-11-14T16:26:30.533 に答える