2014-10-02 106 views
4

請求soap請求拋出錯誤。服務器無法處理您的請求,值不能爲空:肥皂解析

10-02 06:05:05.840: E/@@@@@@@@@@(1722): RawXML Request:<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
    <soap:Fault> 
     <faultcode>soap:Server</faultcode> 
     <faultstring>Server was unable to process request. ---&gt; Value cannot be null. 
    10-02 06:05:05.840: E/@@@@@@@@@@(1722): Parameter name: String</faultstring> 
     <detail /> 
    </soap:Fault> 
    </soap:Body> 
</soap:Envelope> 

我真誠地傳遞了所需的參數,即使它的拋出錯誤。

這是我用於肥皂請求的功能。

ChangePassword

public void ChangePassword(String METHOD, String token, 
      String userId, String oldPassword,String newPassword) { 
     SoapObject request = null; 

     request = new SoapObject(NAME_SPACE, METHOD); 

     Log.e("####", "ChangePassword token=" + token.trim()); 
     Log.e("####", "ChangePassword userId=" + userId); 
     Log.e("####", "ChangePassword oldPassword=" + oldPassword); 
     Log.e("####", "ChangePassword newPassword=" + newPassword); 

     request.addProperty("token", token.trim()); 
     request.addProperty("userId", userId); 
     request.addProperty("oldPassword", oldPassword); 
     request.addProperty("newPassword", newPassword); 

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

     try { 
      HttpTransportSE transport = new HttpTransportSE(URL); 
      transport.debug = true; 

      String action=SOAP_ACTION+METHOD; 
      Log.e("@@@@", "soap action="+action); 

      transport.call(action, envelope); 
//   transport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 

      String response = transport.responseDump; 
      Log.e("@@@@@@@@@@","RawXML Request:"+response.toString()); 


     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 

有什麼我錯過了,同時擊中的要求嗎?

+0

請將'Log.e'輸出添加到您的問題。 – ashoke 2014-10-07 04:03:09

+0

第一句話後已添加。 – RobinHood 2014-10-07 04:05:16

+0

我懷疑是序列化問題,你可以添加所有其他'Log.e'消息嗎? – ashoke 2014-10-07 04:08:26

回答

6

我懷疑你的web服務存在問題。確保您的所有參數名稱都與您在Android應用中使用的值匹配。