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)

当我尝试将我的 android 应用程序连接到在本地主机中运行的 Web 服务时出现此错误。

这是 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 回答