2017-07-05 8 views
-1

の要求ビルダーで構築された使用:私は私が得たメソッドを呼び出すための組み込みメソッドを使用する場合はサボンは、生のXMLのすべてが正常に動作して私はサボンを使用している場合、これは生のXMLの例である代わりに、生のXML

request = client.call(:authenticate, xml:'<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="xxxx/"> 
    <SOAP-ENV:Body> 
    <ns1:authenticate> 
     <ns1:username>user</ns1:username> 
     <ns1:password>pwd</ns1:password> 
     <ns1:cultureInfo>it</ns1:cultureInfo> 
    </ns1:authenticate> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope>') 

<?xml version="1.0" encoding="UTF-8"?> 
    <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:wsdl="http://tempuri.org/" 
       xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> 
    <env:Body> 
    <wsdl:authenticate> 
     <username>user</username> 
     <password>pwd</password> 
     <cultureInfo>it</cultureInfo> 
    </wsdl:authenticate> 
    </env:Body> 
</env:Envelope> 

任意井手:これは、上記のコードによって生成されたXMLである

credentials={ username: 'user', password: 'pwd!!', cultureInfo: "it" } 
response  = client.call(:authenticate, message: credentials) 

:エラーが発生し、これはコードでありますa?

答えて

0

私は通常これを(テストされていない)行います。それはかなりではありませんが、それは動作します。

credentials = { 'ns1:username' => 'user', 
       'ns1:password' => 'pwd!!', 
       'ns1:cultureInfo' => "it" } 
response = client.call(:authenticate, message: credentials) 

あなたはあなたのケースで実際に使用される名前空間へns1の使用を適応することがあります。

+0

はい名前空間が問題でした。 savonクライアントの設定でこれを追加しなければなりませんでした:env_namespace :: soapenv、 namespace_identifier :: ns1) – Kerby82