2013-01-24 187 views
0

你好,我正在嘗試從android調用一個web服務。代碼工作正常,沒有錯誤,但我沒有輸出。我是android新手。請幫助我。從android中調用肥皂web服務

整個教程是here ....

有三個按鈕清除按鈕做的很好,但都轉換爲攝氏溫度轉換爲華氏不起作用。 其實有try塊

SoapObject result = (SoapObject)envelope.bodyIn; 

我想在這條線在他們兩人的語句的應用程序會被卡住,因爲我把建設者消息提示它每個語句後但這句話後,事實並非如此。 請告訴我是什麼問題,我真的很擔心..

+0

1日嘗試調試代碼,並檢查該行造成錯誤 然後讀取錯誤 然後在這裏發表您的logcat的跟蹤/堆棧跟蹤 –

+0

嘗試發佈的logcat – edwin

回答

0

嘗試使用這個類來調用Web服務:

public class WSRequest { 

    public HttpTransportSE androidHttpTransport; 
    public SoapSerializationEnvelope envelope; 
    public String methodName; 
    public SoapObject request; 

    public WSRequest(String methodName) 
    { 
     this.methodName = methodName; 
     this.request = new SoapObject(SRWebServer.NAMESPACE, methodName); 
     envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.implicitTypes = true; 
     envelope.dotNet = true; 
     envelope.setOutputSoapObject(request); 

     androidHttpTransport = new HttpTransportSE(SRWebServer.URL); 
    } 

    public void RegisterMarshal() 
    { 
     MarshalBase64 marshal = new MarshalBase64(); 
     marshal.register(envelope); 
    } 

    public SoapObject Send() throws IOException, XmlPullParserException 
    { 
     System.setProperty("http.keepAlive", "false"); 
     new MarshalDate().register(envelope); 
     this.androidHttpTransport.call(SRWebServer.NAMESPACE + this.methodName, envelope); 
     return (SoapObject) this.envelope.getResponse(); 
    } 



    public void AddProperties(String name, Object value) 
    { 
     this.request.addProperty(name, value); 

    } 
     // 

} 

,並用這樣的方式:

WSRequest request = new WSRequest("method name here"); 
request.addProperties("property1Name",property1); 
request.Send(); 

requestSend()將返回包含從Web服務接收的對象的SoapObject。

+0

我已經試過這種代碼,但在運行此應用程序獲取後自動停止並關閉;( –

+0

使用調試來查看它崩潰的位置,併發布日誌cat.I使用這個類來調用Web服務,它的工作原理完美。 –