public class HttprequestUtil { /** * 调用WebService @return WebService的返回值 */ public String CallWebService(String NameSpace,String SoapAction,String Url,String MethodName, Map<String, String> Params) { // 1、指定webservice的命名空间和调用的方法名 SoapObject request = new SoapObject(NameSpace, MethodName); // 2、设置调用方法的参数值,如果没有参数,可以省略, if (Params != null) { Iterator iter = Params.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); request.addProperty((String) entry.getKey(), (String) entry.getValue()); } } // 3、生成调用Webservice方法的SOAP请求信息。该信息由SoapSerializationEnvelope对象描述 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12); envelope.bodyOut = request; // c#写的应用程序必须加上这句 envelope.dotNet = true; //设置服务器的超时时间 HttpTransportSE ht = new HttpTransportSE(Url,60000); //SoapObject resultso=null; // 使用call方法调用WebService方法 try { ht.call(SoapAction, envelope); Object result = envelope.getResponse(); if (result != null) { //Log.d("----收到的回复----", result.toString()); //resultso= (SoapObject) envelope.bodyIn; return result.toString();//得到web service的返回结果 } } catch (SocketTimeoutException e){ e.printStackTrace(); //Toast.makeText(context,"服务器连接超时",Toast.LENGTH_SHORT).show(); return null; } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } return null; } }
1、向后台传递数据,可以实现数据上传也可以是请求数据
实例化一个SoapObject对象,指定webservice的命名空间和调用方法
SoapObject request = new SoapObject("http://tempuri.org/", "operatingLogin");
request.addProperty(key, value);通过方法传递参数,传递字符串类型
SoapSerializationEnvelope envelope = new SoapSericalizationEnvelope(SoapEnvelope.VER12);
实例化SoapSerializationEnvelope对象,用于描述Webservice方法的SOAP请求信息
envelope.bodyOut = request;指明描述对象
核心代码,实现服务器请求
HttpTransportSE ht = new HttpTransportSE("http://113.108.8.46:75/WebService/UserAccountWebService.asmx?wsdl" , 60000);
ht.call("http://tempuri.org/operatingLogin",envelop);开始请求
Obeject response = envelope.getResponse();得到返回对象,一般都是json数据格式
String jsonStr = response.toString();