Android平台调用.NET WebService详解

来源:互联网 发布:人工智能如何入门 编辑:程序博客网 时间:2024/05/16 17:07

Android调用.NET WebService 的注意事项!

网上有些资料说在需要传入多个参数时,只要多个参数的顺序与WSDL中参数出现的顺序一致即可,名称并不需要和WSDL中的一致,但实际测试发现,大多数情况下并不可行!)

// 调用的方法String methodName = "GetGoodsSet_Android";// 创建HttpTransportSE传输对象HttpTransportSE ht = new HttpTransportSE("http://192.168.1.115/Android_WebService/WebService1.asmx");ht.debug = true;// 实例化SoapObject对象SoapObject soapObject = new SoapObject(SERVICE_NS, methodName);// 添加一个请求参数soapObject.addProperty("queryPara", queryPara);soapObject.addProperty("pagesze", PageSize);// 使用SOAP1.1协议创建Envelop对象SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut = soapObject;// 设置与.Net提供的Web Service保持较好的兼容性envelope.dotNet = true;try{// 调用Web Serviceht.call("http://tempuri.org/GetGoodsSet_Android", envelope);//Log.println(priority, tag, msg)if (envelope.getResponse() != null){// 获取服务器响应返回的SOAP消息SoapObject result = (SoapObject)envelope.bodyIn;  //SoapPrimitive  result_P = (SoapPrimitive) envelope.getResponse();     //DialogUtil.showDialog(Main,WebServiceUtil.getCityListByProvince(), false);System.out.println(result.getAttributeCount());//SoapObject detail = (SoapObject) result.getProperty(methodName//+ "Result");// 解析服务器响应的SOAP消息。//return parseProvinceOrCity(detail);//SoapObject chileds =(SoapObject) result.getProperty(0);//SoapObject chiled_s =(SoapObject) chileds.getProperty(1);//JSONObject js_obj=new JSONObject(envelope.getResponse().toString());return envelope.getResponse().toString();}else{return "Null";}}catch (IOException e){e.printStackTrace();return e.getLocalizedMessage();}catch (XmlPullParserException e){e.printStackTrace();return e.getLocalizedMessage();}


 

原创粉丝点击