1
package com.example.weblab;
import org.apache.http.protocol.HTTP;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.util.Log;


public class WebServiceCaller {

private final String NAMESPACE="http://tempuri.org/";
private final String URL="http://10.0.2.2:8080/Service1.asmx?WSDL";

public String authenticateUser(String usern,String passw)
{
    String result = "";
    final String SOAP_ACTION="http://tempuri.org/AuthenticateUser";

    final String METHOD_NAME="GetUserName";

    SoapObject request=new SoapObject(NAMESPACE, METHOD_NAME);

    PropertyInfo prinfo=new PropertyInfo();
    prinfo.setName("name");
    prinfo.setValue(usern);
    prinfo.setType(String.class);
    request.addProperty(prinfo);

    SoapSerializationEnvelope envelop=new      SoapSerializationEnvelope(SoapEnvelope.VER11);//ver11 version
    envelop.dotNet=true;//only for dotnet

    envelop.setOutputSoapObject(request);
    HttpTransportSE httptransportse=new HttpTransportSE(URL);
    try{
    httptransportse.call(SOAP_ACTION, envelop);

    SoapPrimitive response=(SoapPrimitive)envelop.getResponse();

    Log.i("myapp",response.toString());

        result = response.toString();

    }catch (Exception e) {

        e.printStackTrace();

    }

    return result;

}   
}

04-02 09:39:26.044: W/System.err(13741): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <html>@2:7 in java.io.InputStreamReader@40d38638)

ローカル ホストで実行されている Web サービスに Android アプリケーションを接続しようとすると、このエラーが発生します。

これは、KSOAP Web サービスの完全なコードです。現在、Eclipse でエミュレーターを使用してローカル ホスト サーバーを実行しています。

4

1 に答える 1

0

このような別のスレッド内でコードを使用してみてください

 StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

 StrictMode.setThreadPolicy(policy); 
于 2013-04-02T13:27:59.367 に答える