WebService 请求代码如下:
public Object callWebService(Context context ,Intent intent,String methodName,
Map<String, String> paramerMap) {
String ip = null;
String port = null;
DBHelper dbHelper = new DBHelper(context);
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query("server", null, null, null, null, null,null);
if (cursor != null && cursor.getCount() > 0) {
cursor.moveToFirst();
ip = cursor.getString(1);
port = cursor.getString(2);
}
cursor.close();
db.close();
Bundle getBundle = intent.getExtras();
SoapObject rpc = new SoapObject(Constant.WEBSERVICE_NAMESPACE,
methodName);
Iterator it = paramerMap.entrySet().iterator();
System.out.println(paramerMap);
while(it.hasNext()){
Entry entry = (Entry)it.next();
// entry.getKey() 返回与此项对应的键
// entry.getValue() 返回与此项对应的值
String key = (String)entry.getKey();
rpc.addProperty(key, entry.getValue());
}
System.out.println("rpc======="+rpc);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet=false;
envelope.setOutputSoapObject(rpc);
//System.setProperty("http.keepAlive", "false");
HttpTransportSE ht = SingleInstanceHttpTransportSE.connectWebService("http://"+ip+":"+port+"/hhxj/ws/hhxjWebService");
//(new MarshalBase64()).register(envelope);//放着没错
try {
// web service请求
System.out.println("http://"+ip+":"+port+"/hhxj/ws/hhxjWebService");
ht.call(null, envelope);
System.out.println("envelope.getResponse====" + envelope.getResponse());
if(envelope.getResponse() != null){
SoapObject result = (SoapObject) envelope.bodyIn;
System.out.println("result=====" + result);
return result;
}
// 得到返回结果
} catch (Exception ex) {
System.out.println("::::错误开始::::");
System.out.println("::::错误信息:" + ex.getMessage() + "::::");
ex.printStackTrace();
System.out.println("::::错误结束::::");
}
return null;
}
这段代码能连接到服务器,服务器能根据请求查询到数据
但是客户端报错了,
是 HttpTransportSE.call 这个地方报错
报错如下:
05-15 15:52:15.901: I/System.out(1429): ::::错误开始::::
05-15 15:52:15.901: I/System.out(1429): ::::错误信息:Unexpected token (position:TEXT
05-15 15:52:15.901: I/System.out(1429): ------=_Part_0_...@5:13 in java.io.InputStreamReader@43b23060) ::::
05-15 15:52:15.901: W/System.err(1429): org.xmlpull.v1.XmlPullParserException: Unexpected token (position:TEXT
05-15 15:52:15.901: W/System.err(1429): ------=_Part_0_...@5:13 in java.io.InputStreamReader@43b23060)
05-15 15:52:15.901: W/System.err(1429): at org.kxml2.io.KXmlParser.next(KXmlParser.java:426)
05-15 15:52:15.911: W/System.err(1429): at org.kxml2.io.KXmlParser.next(KXmlParser.java:310)
05-15 15:52:15.911: W/System.err(1429): at org.kxml2.io.KXmlParser.nextTag(KXmlParser.java:2029)
05-15 15:52:15.911: W/System.err(1429): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:127)
05-15 15:52:15.911: W/System.err(1429): at org.ksoap2.transport.Transport.parseResponse(Transport.java:118)
05-15 15:52:15.911: W/System.err(1429): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:253)
05-15 15:52:15.911: W/System.err(1429): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:116)
05-15 15:52:15.911: W/System.err(1429): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:111)
05-15 15:52:15.921: W/System.err(1429): at com.csscis.async.CallWebService.callWebService(CallWebService.java:61)
05-15 15:52:15.921: W/System.err(1429): at com.csscis.async.HttpThread.run(HttpThread.java:60)
05-15 15:52:15.921: I/System.out(1429): ::::错误结束::::
请大哥们、大侠们、师傅们 !指点迷津!