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

这个项目是基于webservice的,用ksoap2来解析网络上的WebService

发布时间:2020-12-16 23:45:17 所属栏目:安全 来源:网络整理
导读:import?java.util.ArrayList;?? import?java.util.List;?? ?? import?org.ksoap2.SoapEnvelope;?? import?org.ksoap2.serialization.SoapObject;?? import?org.ksoap2.serialization.SoapSerializationEnvelope;?? import?org.ksoap2.transport.HttpTranspor
  1. import?java.util.ArrayList;??
  2. import?java.util.List;??
  3. ??
  4. import?org.ksoap2.SoapEnvelope;??
  5. import?org.ksoap2.serialization.SoapObject;??
  6. import?org.ksoap2.serialization.SoapSerializationEnvelope;??
  7. import?org.ksoap2.transport.HttpTransportSE;??
  8. ??
  9. public?class?WebServiceUtil??
  10. {??
  11. ????//?定义Web?Service的命名空间 ??
  12. ????static?final?String?SERVICE_NS?=?"http://WebXml.com.cn/";??
  13. ????//?定义Web?Service提供服务的URL ??
  14. ????static?final?String?SERVICE_URL?=?"http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx";??
  15. ??
  16. ????/**?
  17. ?????*?获得州,国内外省份和城市信息?
  18. ?????*??
  19. ?????*?@return?
  20. ?????*/??
  21. ????public?static?List<String>?getProvinceList()??
  22. ????{??
  23. ??
  24. ????????//?需要调用的方法名(获得本天气预报Web?Services支持的洲、国内外省份和城市信息) ??
  25. ????????String?methodName?=?"getRegionProvince";??
  26. ????????//?创建HttpTransportSE传输对象 ??
  27. ????????HttpTransportSE?httpTranstation?=?new?HttpTransportSE(SERVICE_URL);??
  28. ??
  29. ????????httpTranstation.debug?=?true;??
  30. ????????//?使用SOAP1.1协议创建Envelop对象 ??
  31. ????????SoapSerializationEnvelope?envelope?=?new?SoapSerializationEnvelope(??
  32. ????????????????SoapEnvelope.VER11);??
  33. ????????//?实例化SoapObject对象 ??
  34. ????????SoapObject?soapObject?=?new?SoapObject(SERVICE_NS,?methodName);??
  35. ????????envelope.bodyOut?=?soapObject;??
  36. ????????//?设置与.Net提供的Web?Service保持较好的兼容性 ??
  37. ????????envelope.dotNet?=?true;??
  38. ????????try??
  39. ????????{??
  40. ????????????//?调用Web?Service ??
  41. ????????????httpTranstation.call(SERVICE_NS?+?methodName,?envelope);??
  42. ????????????if?(envelope.getResponse()?!=?null)??
  43. ????????????{??
  44. ????????????????//?获取服务器响应返回的SOAP消息 ??
  45. ????????????????SoapObject?result?=?(SoapObject)?envelope.bodyIn;??
  46. ????????????????SoapObject?detail?=?(SoapObject)?result.getProperty(methodName??
  47. ????????????????????????+?"Result");??
  48. ????????????????//?解析服务器响应的SOAP消息。 ??
  49. ????????????????return?parseProvinceOrCity(detail);??
  50. ????????????}??
  51. ????????}?catch?(Exception?e)??
  52. ????????{??
  53. ????????????e.printStackTrace();??
  54. ????????}??
  55. ??
  56. ????????return?null;??
  57. ????}??
  58. ??
  59. ????/**?
  60. ?????*?根据省份获取城市列表?
  61. ?????*??
  62. ?????*?@param?province?
  63. ?????*?@return?
  64. ?????*/??
  65. ????public?static?List<String>?getCityListByProvince(String?province)??
  66. ????{??
  67. ??
  68. ????????//?需要调用的方法名(获得本天气预报Web?Services支持的城市信息,根据省份查询城市集合:带参数) ??
  69. ????????String?methodName?=?"getSupportCityString";??
  70. ??????????
  71. ????????HttpTransportSE?httpTranstation?=?new?HttpTransportSE(SERVICE_URL);??
  72. ????????httpTranstation.debug?=?true;??
  73. ??????????
  74. ????????SoapSerializationEnvelope?envelope?=?new?SoapSerializationEnvelope(??
  75. ????????????????SoapEnvelope.VER11);??
  76. ??
  77. ????????SoapObject?soapObject?=?new?SoapObject(SERVICE_NS,?methodName);??
  78. ????????soapObject.addProperty("theRegionCode",?province);??
  79. ????????envelope.bodyOut?=?soapObject;??
  80. ????????envelope.dotNet?=?true;??
  81. ????????try??
  82. ????????{??
  83. ????????????//?调用Web?Service ??
  84. ????????????httpTranstation.call(SERVICE_NS?+?methodName,?envelope);??
  85. ????????????if?(envelope.getResponse()?!=?null)??
  86. ????????????{??
  87. ????????????????//?获取服务器响应返回的SOAP消息 ??
  88. ????????????????SoapObject?result?=?(SoapObject)?envelope.bodyIn;??
  89. ????????????????SoapObject?detail?=?(SoapObject)?result.getProperty(methodName??
  90. ????????????????????????+?"Result");??
  91. ????????????????//?解析服务器响应的SOAP消息。 ??
  92. ????????????????return?parseProvinceOrCity(detail);??
  93. ????????????}??
  94. ????????}?catch?(Exception?e)??
  95. ????????{??
  96. ????????????e.printStackTrace();??
  97. ????????}??
  98. ??
  99. ????????return?null;??
  100. ??
  101. ????}??
  102. ??
  103. ????private?static?List<String>?parseProvinceOrCity(SoapObject?detail)??
  104. ????{??
  105. ????????ArrayList<String>?result?=?new?ArrayList<String>();??
  106. ????????for?(int?i?=?0;?i?<?detail.getPropertyCount();?i++)??
  107. ????????{??
  108. ????????????String?str?=?detail.getProperty(i).toString();??
  109. ????????????//?解析出每个省份 ??
  110. ????????????result.add(str.split(",")[0]);??
  111. ????????}??
  112. ????????return?result;??
  113. ????}??
  114. ??
  115. ????public?static?SoapObject?getWeatherByCity(String?cityName)??
  116. ????{??
  117. ??
  118. ????????//?根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数 ??
  119. ????????String?methodName?=?"getWeather";??
  120. ?????????? s
  121. ????????HttpTransportSE?httpTranstation?=?new?HttpTransportSE(SERVICE_URL);??
  122. ????????httpTranstation.debug?=?true;??
  123. ??????????
  124. ????????SoapSerializationEnvelope?envelope?=?new?SoapSerializationEnvelope(??
  125. ????????????????SoapEnvelope.VER11);??
  126. ????????SoapObject?soapObject?=?new?SoapObject(SERVICE_NS,?methodName);??
  127. ????????soapObject.addProperty("theCityCode",?cityName);??
  128. ????????envelope.bodyOut?=?soapObject;??
  129. ????????envelope.dotNet?=?true;??
  130. ??????????
  131. ????????try??
  132. ????????{??
  133. ????????????//?调用Web?Service ??
  134. ????????????httpTranstation.call(SERVICE_NS?+?methodName,?envelope);??
  135. ????????????if?(envelope.getResponse()?!=?null)??
  136. ????????????{??
  137. ????????????????//?获取服务器响应返回的SOAP消息 ??
  138. ????????????????SoapObject?result?=?(SoapObject)?envelope.bodyIn;??
  139. ????????????????SoapObject?detail?=?(SoapObject)?result.getProperty(methodName??
  140. ????????????????????????+?"Result");??
  141. ????????????????//?解析服务器响应的SOAP消息。 ??
  142. ????????????????return?detail;??
  143. ????????????}??
  144. ????????}?catch?(Exception?e)??
  145. ????????{??
  146. ????????????e.printStackTrace();??
  147. ????????}??
  148. ??
  149. ????????return?null;??
  150. ????}??
  151. }?

(编辑:李大同)

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

    推荐文章
      热点阅读