加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

KSOAP2 访问WebService

发布时间:2020-12-17 01:07:49 所属栏目:安全 来源:网络整理
导读:private static final String serviceNameSpace = "http://WebXml.com.cn/";? //命名空间 ?private static final String getSupportCity = "getSupportCity";??//将调用的WebSerice方法 ?private static final String serviceURL = "http://www.webxml.com.c

private static final String serviceNameSpace = "http://WebXml.com.cn/";? //命名空间
?private static final String getSupportCity = "getSupportCity";??//将调用的WebSerice方法
?private static final String serviceURL = "http://www.webxml.com.cn/webservices/weatherwebservice.asmx"; //将访问的WSDL路径

??? // 实例化SoapObject对象(如:信)
????SoapObject request = new SoapObject(serviceNameSpace,getSupportCity);

??? //为SOAP对象添加参数

??? request.addProperty("byProvinceName","北京");

??? // 获得序列化的Envelope(如:信封) (并指定SOAP版本SoapEnvelope.VER11)
????SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

??? //设置要发送的SOAP对象(信)??

??? envelope.setOutputSoapObject(request);? 或? envelope.bodyOut = request;

??? //网络传输

??? envelope.dotNet = true;

??? // 注册Envelope?? (视乎不注册也可)
????(new MarshalBase64()).register(envelope);

??? //设置传输对象,并传入要访问的WSDL路径(如:邮局)

??? HttpTransportSE ht = new HttpTransportSE(serviceURL);?? 或 AndroidHttpTransport ht=new AndroidHttpTransport(serviceURL);

??? //设置调试打开,在debug时 才可以看到发生的XML和收到的XML具体信息

??? ht.debug = true;

??? // 调用WebService(其中参数为1:命名空间+方法名称,2:Envelope对象):

??? ht.call(serviceNameSpace + getSupportCity,envelope);

????//判断是否访问成功

??? if (envelope.getResponse() != null) {

???????? //获得返回的SOAP对象

???????? try {

????????? SoapObject sb =(SoapObject)envelope.bodyIn;

?????????? //实现PULL解析对结果进行解析
???????????XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
???????? ??XmlPullParser pullParser = factory.newPullParser();
???????? ?StringReader reader = new StringReader(sb.getProperty(0).toString());
??????? ??pullParser.setInput(reader);
??????? ??int eventType = pullParser.getEventType();

????????? //开始解析
??????????while (eventType != XmlPullParser.END_DOCUMENT) {
????????????????? switch (eventType) {
???????????????????? ?case XmlPullParser.TEXT:
???????????????????? ?System.out.println(pullParser.getText());
??????????????????? ??break;
?????????????????? }
????? ???????? eventType = pullParser.next();
????????? ?}
??????} catch (XmlPullParserException e1) {
???????e1.printStackTrace();
??????}

??? }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读