2013-07-23 92 views
0

這裏是完整的代碼..在運行應用程序後,屏幕變爲空白。沒有輸出。我加HTTP:10.0.2.2,因爲我使用Webservices(屏幕不顯示任何響應)

的Java

package com.example.final_mobile; 

import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 

import android.app.Activity; 
import android.os.Bundle; 
import android.os.StrictMode; 
import android.widget.TextView; 

public class AndroidClassActivity extends Activity { 
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder() 
     .permitAll().build(); 
private static final String SOAP_ACTION = "http://srfsolution.com/GetClients"; 

private static final String OPERATION_NAME = "GetClients"; 

private static final String WSDL_TARGET_NAMESPACE = "http://srfsolution.com/"; 

private static final String SOAP_ADDRESS = 
    "http://10.0.2.2:8080/Web_Service/WebService.asmx?wsdl"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    StrictMode.setThreadPolicy(policy); 
    TextView textView = new TextView(this); 

    setContentView(textView); 

    SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, 
      OPERATION_NAME); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
      SoapEnvelope.VER11); 
    envelope.dotNet = true; 

    envelope.setOutputSoapObject(request); 

    HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); 

    try 

    { 

     httpTransport.call(SOAP_ACTION, envelope); 

     Object response = envelope.getResponse(); 

     textView.setText(response.toString()); 

    } 

    catch (Exception exception) 

    { 

     textView.setText(exception.toString()); 

    } 

} 
} 

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".AndroidClassActivity" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

</ 

WSDL

POST /Web_Service/WebService.asmx HTTP/1.1 
Host: localhost 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 
SOAPAction: "http://srfsolution.com/GetClients" 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 

<soap:Body> 
    <GetClients xmlns="http://srfsolution.com/"> 
    <driverid>string</driverid> 
    </GetClients> 
</soap:Body> 
</soap:Envelope> 
HTTP/1.1 200 OK 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <GetClientsResponse xmlns="http://srfsolution.com/"> 
    <GetClientsResult> 
    <driverid>string</driverid> 
    <scheduleid>string</scheduleid> 
    <clientid>string</clientid> 
    <clientname>string</clientname> 
    </GetClientsResult> 
</GetClientsResponse> 
    </soap:Body> 
</soap:Envelope> 

回答

0

嘗試設置輸入數據。它看起來像你沒有設置請求參數。例如,

SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, OPERATION_NAME); 

request.addProperty("driverid", "MYAPPDRIVER01");