2010-06-01 23 views
1

我無法弄清楚爲什麼我無法從使用kso​​ap2的Web服務調用中獲得響應。ksoap2不工作

該調用向Web服務發送MSISDN值,並返回一個字符串。我可以在Web服務上看到它被調用並返回字符串,但無法在設備上看到返回的字符串。

我的代碼如下:

  SoapObject request = new SoapObject("http://fc.mobiledatacapture/", "getParameters"); 
      request.addProperty("arg0", MSISDN); 
      SoapSerializationEnvelope envelope = 
       new SoapSerializationEnvelope(SoapSerializationEnvelope.VER10); 

      envelope.bodyOut = request; 

      HttpTransport ht = new HttpTransport(url); 

      //call web service method 
      ht.call("\"getParameters\"", envelope); 

      SoapObject response = (SoapObject)envelope.getResponse(); //marker 

      parameterString = (String) response.getProperty(0); 

,所以我知道的是,Web服務被調用,但我從來沒有得到一個結果爲parameterString。

添加了一些打印輸出和錯誤檢查後,我發現代碼沒有通過註釋 - 「// marker」。在該行之前,我做了一個檢查,看看信封是否爲空,而不是。然而,這個代碼塊捕獲一個空錯誤。

所以我認爲這意味着響應是空的,但我怎麼才能得到Web服務返回的值?

回答

1

不用擔心。我改變了代碼如下,我得到了我的網絡服務返回的字符串:

Object response = envelope.getResponse(); 
    parameterString = response.toString();