2011-11-22 42 views
1

我需要從服務器使用ID獲得響應。如何發送id到web服務以檢索android中的響應?

我試圖發送使用下面的代碼請求:

soapObj = new SoapObject(sNameSpace, sMethodName); 
    soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    soapObj.addProperty("VideoID", 85); 

    soapEnvelope.dotNet = true; 
    soapEnvelope.setOutputSoapObject(soapObj); 

    HttpTransportSE http = new HttpTransportSE(sUrl); 
    http.debug = true; 

,但我得到的是

11-22 11:37:16.012: WARN/System.err(554): SoapFault - faultcode:  
    'a:InternalServiceFault' faultstring: 'Specified argument was out of the range of 
    valid values. 
    11-22 11:37:16.012: WARN/System.err(554): Parameter name: VideoID' faultactor: 'null' 
detail: [email protected] 
    11-22 11:37:16.012: WARN/System.err(554):  at 
     org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:136) 
11-22 11:37:16.022: WARN/System.err(554):  at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137) 
11-22 11:37:16.022: WARN/System.err(554):  at org.ksoap2.transport.Transport.parseResponse(Transport.java:96) 
11-22 11:37:16.022: WARN/System.err(554):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:189) 
11-22 11:37:16.022: WARN/System.err(554):  at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95) 
11-22 11:37:16.022: WARN/System.err(554):  at com.utils.WsdlService.getResponse(WsdlService.java:57) 
11-22 11:37:16.022: WARN/System.err(554):  at com.scopra.screens.TableOfContents.onCreate(TableOfContents.java:46) 
11-22 11:37:16.022: WARN/System.err(554):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
11-22 11:37:16.022: WARN/System.err(554):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
11-22 11:37:16.022: WARN/System.err(554):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
11-22 11:37:16.022: WARN/System.err(554):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
11-22 11:37:16.032: WARN/System.err(554):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
11-22 11:37:16.032: WARN/System.err(554):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-22 11:37:16.032: WARN/System.err(554):  at android.os.Looper.loop(Looper.java:123) 
11-22 11:37:16.032: WARN/System.err(554):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
11-22 11:37:16.032: WARN/System.err(554):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-22 11:37:16.032: WARN/System.err(554):  at java.lang.reflect.Method.invoke(Method.java:521) 
11-22 11:37:16.032: WARN/System.err(554):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
11-22 11:37:16.032: WARN/System.err(554):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
11-22 11:37:16.032: WARN/System.err(554):  at dalvik.system.NativeStart.main(Native  Method) 

我不什麼錯誤異常。 有人可以建議在這幫助我。

感謝

+0

AndroidHttpTransport androidHttpTransport =新AndroidHttpTransport(URL);嘗試android HTTP傳輸而不是使用HTTPTransportSE – Karthi

+0

是它的網絡服務? –

+0

@Karthi_heno燁,我試過......但得到空指針異常...這意味着沒有數據或什麼? – Taruni

回答

0

首先找到SOAPACTION爲所需的操作(sMethodName)從WSDL.Then試試這個:

PropertyInfo pi = new PropertyInfo(); 
pi.setName("VideoID"); 
pi.setValue(85); 
pi.setType(PropertyInfo.INTEGER_CLASS); 

SoapObject request = new SoapObject(sNameSpace, sMethodName); 
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
//Uncomment this line for .NET based Web Services: 
//envelope.dotNet = true; 
envelope.setOutputSoapObject(Request); 
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(sUrl); 
androidHttpTransport.debug = true; 
try 
{ 
androidHttpTransport.call(SoapAction, envelope); 
} 
catch(Exception e) 
{ 
e.printStackTrace(); 
} 
+0

沒有適當的迴應感謝您的迴應,我會立即檢查。 – Taruni

相關問題