2017-11-01 7 views
0

私はエラーがあります:有効なアクションパラメータなしで要求を処理することができません。 SOAPサーバーでログインしたいだけです。私のWSDLがここにある :https://demo.krd.pl/Siddin/2.1/Import.asmx?WSDL と私のコードは次のようである:SOAP障害。できません

$client = new SoapClient('https://demo.krd.pl/Siddin/2.1/Import.asmx?WSDL', array(
      'location' => 'https://demo.krd.pl/Siddin/2.1/Import.asmx?WSDL', 
      'trace' => 1, 
      'exceptions' => true, 
      'cache_wsdl' => WSDL_CACHE_NONE, 
      'features' => SOAP_SINGLE_ELEMENT_ARRAYS, 
      'soap_version' => SOAP_1_2 
     )); 
    $auth = new stdClass(); 
    $auth->UserName = 'aaa'; 
    $auth->Password = 'bbb'; 
    $auth = new SoapVar($auth, SOAP_ENC_OBJECT, 'complexType', null, 'LoginRequest', 'types'); 
    $result = $client->login($auth); 
    die(var_dump($result)); 

あなたが見ることができるように、私は、メソッドを呼び出したいパラメータLoginRequestこのSOAPサーバー上の「ログイン」 - それは、WSDLファイルに記述されています。それはどうですか?

+0

rafaluf - 私はPHPianではありませんが、あなたはそれをもっと記述しています。私は間違いなくこれであなたを助けることができます。 –

答えて

0
without a valid action parameter. 

これは、PHP SOAPクライアントが必要なSOAPAction httpヘッダーを構成できないことを意味します。それは、ヘッダーを追加しないために考えられる理由の数は、例えば、あり

soapAction="http://Siddin.ServiceContracts/2006/09/Login" 

:あなたWSDLは、ログイン方法のためにこれを定義しますこれは1:

'soap_version' => SOAP_1_2, 

それを解決するdoesntの場合

'soap_version' => SOAP_1_1, 

にそれを変更してみてください、私はあなたが(HTTPヘッダを含む)が送信されたメッセージをトレースすることにより、一般的な石鹸のデバッグを開始し、それを比較することをお勧めしますあなたが設定できる作業要求にSoapUIを使用してhttps://www.soapui.org/

+0

しかし、このプログラムは、私はこれを書く必要がありますPHPコードを教えてくれません有効なXMLを提供しています...私は興味深いPHPコードです! – rafaluf

+0

あなたは何を意味するのかわからない、あなたはあなたのコードを書くためにstackoverflowユーザーと言いたいですか? – Harry

+0

このプログラムは私にこのXMLを作りました: < - オプション:! - > AAA < - オプション:! - > しかし、SOAPサーバーに送信する際にこのXMLを生成するPHPコードを作成したいと思います。私は私のPHPコードでどこが間違っているのか知りたいです。 – rafaluf

関連する問題