Android WebService
搜索Android WebService就可以找到很多了==,就简单讲讲了。
- /**
- * 访问WebService
- *
- * @param methodName
- * WebService方法名
- * @param propertyInfo
- * WebService方法参数
- * @return SoapObject 返回结果
- */
- private SoapObject visitWebService(String methodName,
- PropertyInfo propertyInfo) throws Exception {
- if (null != onWebServiceListener) {
- onWebServiceListener.onStart();
- }
- // 第1步:创建SoapObject对象,并指定WebService的命名空间和调用的方法名
- SoapObject request = new SoapObject(Code.SERVICE_NAMESPACE, methodName);
- // 第2步:设置WebService方法的参数
- if (null != propertyInfo) {
- request.addProperty(propertyInfo);
- }
- // 第3步:创建SoapSerializationEnvelope对象,并指定WebService版本
- SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
- SoapEnvelope.VER11);
- // 设置bodyOut属性
- envelope.bodyOut = request;
- // 需要设置dotNet属性,否则报错
- envelope.dotNet = true;
- envelope.setOutputSoapObject(request);
- envelope.encodingStyle = "UTF-8";
- // 第4步:创建HttpTransportSE对象并指定WSDL文档的URL
- HttpTransportSE ht = new HttpTransportSE(Code.SERVICE_URL);
- try {
- // 第5步:调用WebService
- // ht.call(null, envelope);
- // 需要设置SOAPAction的值,否则报错
- ht.call(Code.SERVICE_NAMESPACE + methodName, envelope);
- // 第6步:使用getResponse方法获得WebService方法的返回结果
- SoapObject soapObject = (SoapObject) envelope.getResponse();
- // SoapObject soapObject = (SoapObject) envelope.bodyIn;
- Log.v("返回结果", "=" + soapObject);
- return soapObject;
- } catch (Exception e) {
- e.printStackTrace();
- Log.e("HttpTransportSE.call", "调用WebService出错!");
- if (null != onWebServiceListener) {
- onWebServiceListener.onError();
- }
- throw e;
- }
- }
附件:http://down.51cto.com/data/2359793
本文转自winorlose2000 51CTO博客,原文链接:http://blog.51cto.com/vaero/778118,如需转载请自行联系原作者


