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 中使用我的模拟器运行本地主机服务器。