2010-06-22 34 views
0

我试图让android手机上的ksoap2工作。我花了至少10个小时的时间阅读论坛帖子和文件。 只需查询getServerTime等一些方法,我不必发送任何值即可。 我的目标是发送数据,并收到回复。例如:发送城市名称,获得城市时间。ksoap2 android发送数据

我练上这个网站:http://www.nanonull.com/TimeService/TimeService.asmx

这是我的代码:

String METHOD_NAME = "getCityTime"; 
    String SOAP_ACTION = "http://www.Nanonull.com/TimeService/getCityTime"; 
    String NAMESPACE = "http://www.nanonull.com/TimeService/"; 
    String URL = "http://www.nanonull.com/TimeService/TimeService.asmx"; 

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    request.addProperty("city", "Chicago"); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
    SoapEnvelope.VER11); 

    envelope.setOutputSoapObject(request); 

    HttpTransportSE httpTransport = new HttpTransportSE(URL); 
    try { 
    httpTransport.call(SOAP_ACTION, envelope); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } catch (XmlPullParserException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } // This sends a soap 

    System.out.println(envelope.bodyIn.toString()); 

这是我的错误(envelope.bodyIn.toString()):

SoapFault - faultcode: 'soap:Server' 
faultstring: 'Server was unable to process request. ---> Object reference not set to an 
instance of an object.' faultactor: 'null' detail: [email protected] 

帮助将不胜感激。

回答

1

尝试

envelope.dotNet = true; 
+0

试过了......它没有什么区别,仍然没有工作 – Tamas 2010-06-22 16:15:51

0
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

soapobjet sp = new soapobject("http://www.nanonull.com/TimeService/","getCityTime"); 
sp.addproperty("city", "Chicago"); 

request.addsoapobject(sp);