2016-11-13 7 views
0

ksoap2ライブラリバージョン3.6.2を使用してsoap APIをリクエストしようとしています。soap要求の問題

問題は、私は、エラーメッセージになってるということです。

「にSoapFault - のfaultcode: 『石鹸:サーバー』のfaultString:「サーバーは要求を処理することができませんでしたが、オブジェクトの参照が設定されていません--->オブジェクトのインスタンスに追加します。 faultactor: 'null'詳細:[email protected] "。

私のコードは次のようになります。私は、問題はそれが1つの以上の特性、私はコードでコメントアウト1を取ることもできると思います

String NAMESPACE = "x"; 
String METHOD_NAME = "x"; 
String SOAP_ACTION = "x"; 
String URL = "x"; 

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

request.addProperty("userName", "x"); 
request.addProperty("Password", "x"); 

//request.addProperty("token","token","?"); 

Log.i("SOAP: ", request.toString()); 

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
envelope.dotNet = true; 
envelope.implicitTypes = false; 
envelope.setOutputSoapObject(request); 


HttpsTransportSE aht = new HttpsTransportSE("x", 8900, "x", 50000); 
aht.debug = true; 

// make call 
try { 

    aht.call(SOAP_ACTION, envelope); 
    SoapObject result = (SoapObject) envelope.getResponse(); 

    Log.i("RESP:", aht.responseDump.toString()); 
    Log.i("RESPONSE: ", result.toString()); 

} catch (IOException e) { 
    e.printStackTrace(); 
} catch (XmlPullParserException e) { 
    e.printStackTrace(); 
} 

属性を持つプロパティを追加するにはどうすればよいですか?このように:<token Token="">、私はそれが私が応答を返すために紛失していると思うので。

私は郵便配達員でテストしましたが、これはうまく機能しますが、これら3つのプロパティ(userName、Password、およびtoken)がある場合のみです。

+0

、このコードを試してみてください? –

+0

それはうまくいきませんでしたので、達成したいことを示したかっただけです。 私はそのプロパティ "token"を必要としますが、実際に値を持つ属性を追加する方法はわかりません。 –

+0

'request.addProperty(" token "、" yourtoken ");コメントを外す? –

答えて

1

addAttributeメソッドを使用すると、プロパティに属性を追加できます。

はその後、なぜあなたがそれをコメントしなかった

request.addProperty("userName", "x"); 
request.addProperty("Password", "x"); 

SoapObject token = new SoapObject(NAMESPACE, "token"); 
token.addAttribute("Token", "your_token"); 
request.addSoapObject(token); 
+0

ありがとう、これは私を助けました! 私は生成されたXMLを見ていましたが、Envelope要素に新しいxmlns URLを追加する必要があります。ありがとう。 '' –

+0

'setNamespace'メソッドで' PropertyInfo'クラスを使う必要があると思います。そのために新しい質問を投稿してください。以下のコメントに質問のURLを投稿することができます。これを受け入れて、これはあなたを助けました。 :) –

関連する問題