2011-09-22 35 views
2

我正在使用kso​​ap,我想將我的android收集的位置信息發送到ksoap。我想嘗試和避免做一個馬歇爾類等,是否有一個簡單的方法來序列化併發送到我的SOAP XML的雙?我試過使用String.valueof但是它會拋出一個錯誤,所以我假設我不能使用它。另外它是一個問題,我傳遞一個double的xml類型十進制?一個簡單的方法來連載一個double?

這是XML文件,我發送給:

<s:element name="Customerlocation_AddNew"> 
<s:complexType> 
<s:sequence> 
<s:element minOccurs="0" maxOccurs="1" name="Token" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string" /> 
<s:element minOccurs="1" maxOccurs="1" name="latitude" type="s:decimal" /> 
<s:element minOccurs="1" maxOccurs="1" name="longitude" type="s:decimal" /> 
<s:element minOccurs="1" maxOccurs="1" name="StatusId" type="s:int" /> 
</s:sequence> 
</s:complexType> 
</s:element> 

和我的java代碼至今:

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); // set 
    request.addProperty("Username", username); // variable name, value. I 
               // got 
    request.addProperty("latitude", String.valueOf(Latitude)); 

    request.addProperty("longitude", String.valueOf(Longitude)); 
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
      SoapEnvelope.VER11); // put all required data into a soap 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); // prepare request 
    AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL); 
    httpTransport.debug = true; 
    httpTransport.call(SOAP_ACTION, envelope); // send request 

    System.out.println("HERE IS THE ENVELOPE " 
      + envelope.getInfo("User", "Password")); 
    SoapObject result = (SoapObject) envelope.getResponse(); // get 
    System.out.println(result); 

回答

1

爲什麼你要避免使用元帥?有一個執行MarshalFloat特別是運輸浮游物。如果你真的想去沒有元帥 - 看看MarshalFloat的實施!在你的情況,你應該使用這樣的事情:

request.addProperty("longitude", new BigDecimal(Longitude).toString())

編輯: 記錄您的請求\響應找出什麼是錯的:

Log.d("test", "request: " + httpTransport .requestDump); 
Log.d("test", "response: " + httpTransport .responseDump); 

,並嘗試以下操作以獲取結果對象:

SoapObject result = (SoapObject) envelope.bodyIn; 

希望這會有所幫助。祝你好運!

+0

我會執行它,然後很快回復你。 –

+0

似乎我已經這樣做了,但是我在回覆中收到錯誤。我在想我的肥皂表可能有問題。 –

+0

我已經更新了我的答案,以幫助您解決您的問題... – Flavio

相關問題