2016-11-13 179 views
0

我正在嘗試使用kso​​ap2庫版本3.6.2向soap API發出請求。製作肥皂請求的問題

的問題是,我收到錯誤消息:

「的SOAPFault - Fault代碼:‘SOAP:服務器’faultstring:「服務器無法處理請求--->未設置對象引用到一個對象的一個​​實例。' faultactor:'null'詳細信息:[email protected]「。

我的代碼如下所示:

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個屬性(用戶名,密碼和令牌)。

+0

那你爲什麼要發表評論嗎? –

+0

因爲它沒有工作,我只是想展示我想要達到的目標。 我需要該屬性的「令牌」,但我真的不知道如何添加一個屬性給它的值.. –

+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

我想你需要使用'PropertyInfo'類和'setNamespace'方法。請爲此發佈一個新問題。您可以在下面的評論中發佈問題的網址。請接受它,這對你有幫助。 :) –