WebService使用实例

最近刚刚开始学习使用WebService的方法进行服务器端数据交互,发现网上的资料不是很全,

目前就结合收集到的一些资料做了一个小例子和大家分享一下~

我们在PC机器java客户端中,需要一些库,比如XFire,Axis2,CXF等等来支持访问WebService,但是这些库并不适合我们资源有限的android手机客户端,做过JAVA
ME的人都知道有KSOAP这个第三方的类库,可以帮助我们获取服务器端webService调用,当然KSOAP已经提供了基于android版本的jar包了,那么我们就开始吧:

首先下载KSOAP包:ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar包
     下载地址         点击进入代码下载

然后新建android项目:并把下载的KSOAP包放在android项目的lib目录下:右键->build
path->configure build path--选择Libraries,如图:

同时,只添加jar包肯能是不够的,需要添加class folder,即可以再工程的libs文件夹中加入下载的KSOAP包,如图:

环境配好之后可以用下面七个步骤来调用WebService方法:

第一:实例化SoapObject对象,指定webService的命名空间(从相关WSDL文档中可以查看命名空间),以及调用方法名称。如:

//命名空间

privatestatic final String serviceNameSpace="http://WebXml.com.cn/";

//调用方法(获得支持的城市)

privatestatic final String getSupportCity="getSupportCity";

//实例化SoapObject对象

SoapObject request=new SoapObject(serviceNameSpace, getSupportCity);

第二步:假设方法有参数的话,设置调用方法参数:

request.addProperty("参数名称","参数值");

第三步:设置SOAP请求信息(参数部分为SOAP协议版本号,与你要调用的webService中版本号一致):

//获得序列化的Envelope

SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.bodyOut=request;

第四步:注册Envelope:

(new MarshalBase64()).register(envelope);

第五步:构建传输对象,并指明WSDL文档URL:

//请求URL

privatestatic final String serviceURL="http://www.webxml.com.cn/webservices/weatherwebservice.asmx";

//Android传输对象

AndroidHttpTransport transport=new AndroidHttpTransport(serviceURL);

transport.debug=true;

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

transport.call(serviceNameSpace+getWeatherbyCityName, envelope);

第七步:解析返回数据:

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

return parse(envelope.bodyIn.toString());

}

这里有个地址提供webService天气预报的服务网站,在浏览器中输入网站:http://www.webxml.com.cn/webservices/weatherwebservice.asmx可以看到该网站提供的

调用方法,点进去之后可以看到调用时需要输入的参数,当然有的不需要参数,例如:getSupportProvince ,而getSupportCity需要输入查找的省份名,getWeatherbyCityName 需要输入查找的城市名。接下来我们就利用这三个接口获得数据,并做出显示:

获得本天气预报Web Service支持的洲,国内外省份和城市信息:

[html] view
plain
copyprint?

  1. public class MainActivity extends Activity {
  2. // WSDL文档中的命名空间
  3. private static final String targetNameSpace = "http://WebXml.com.cn/";
  4. // WSDL文档中的URL
  5. private static final String WSDL = "http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";
  6. // 需要调用的方法名(获得本天气预报Web Services支持的洲、国内外省份和城市信息)
  7. private static final String getSupportProvince = "getSupportProvince";
  8. private List<Map<String,String>> listItems;
  9. private ListView mListView;
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_main);
  14. listItems = new ArrayList<Map<String,String>>();
  15. mListView = (ListView) findViewById(R.id.province_list);
  16. new NetAsyncTask().execute();
  17. mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  18. @Override
  19. public void onItemClick(AdapterView<?> parent, View view,
  20. int position, long id) {
  21. String mProvinceName = listItems.get(position).get("province");
  22. Log.d("ProvinceName", mProvinceName);
  23. Intent intent = new Intent();
  24. intent.putExtra("Pname", mProvinceName);
  25. intent.setClass(MainActivity.this, CityActivity.class);
  26. startActivity(intent);
  27. }
  28. });
  29. }
  30. class NetAsyncTask extends AsyncTask<Object, Object, String> {
  31. @Override
  32. protected void onPostExecute(String result) {
  33. if (result.equals("success")) {
  34. //列表适配器
  35. SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, listItems, R.layout.province_item,
  36. new String[] {"province"}, new int[]{R.id.province});
  37. mListView.setAdapter(simpleAdapter);
  38. }
  39. super.onPostExecute(result);
  40. }
  41. @Override
  42. protected String doInBackground(Object... params) {
  43. // 根据命名空间和方法得到SoapObject对象
  44. SoapObject soapObject = new SoapObject(targetNameSpace,
  45. getSupportProvince);
  46. // 通过SOAP1.1协议得到envelop对象
  47. SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(
  48. SoapEnvelope.VER11);
  49. // 将soapObject对象设置为envelop对象,传出消息
  50. envelop.dotNet = true;
  51. envelop.setOutputSoapObject(soapObject);
  52. // 或者envelop.bodyOut = soapObject;
  53. HttpTransportSE httpSE = new HttpTransportSE(WSDL);
  54. // 开始调用远程方法
  55. try {
  56. httpSE.call(targetNameSpace + getSupportProvince, envelop);
  57. // 得到远程方法返回的SOAP对象
  58. SoapObject resultObj = (SoapObject) envelop.getResponse();
  59. // 得到服务器传回的数据
  60. int count = resultObj.getPropertyCount();
  61. for (int i = 0; i < count; i++) {
  62. Map<String,String> listItem = new HashMap<String, String>();
  63. listItem.put("province", resultObj.getProperty(i).toString());
  64. listItems.add(listItem);
  65. }
  66. } catch (IOException e) {
  67. e.printStackTrace();
  68. return "IOException";
  69. } catch (XmlPullParserException e) {
  70. e.printStackTrace();
  71. return "XmlPullParserException";
  72. }
  73. return "success";
  74. }
  75. }
  76. }

显示省份列表的activity_main.xml文件:

[html] view
plain
copyprint?

  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:layout_width="fill_parent"
  3. android:layout_height="match_parent" >
  4. <ListView
  5. android:id="@+id/province_list"
  6. android:layout_width="fill_parent"
  7. android:layout_height="fill_parent"/>
  8. </LinearLayout>

列表中选项显示的province_item.xml文件:

[html] view
plain
copyprint?

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6. <TextView
  7. android:id="@+id/province"
  8. android:layout_width="fill_parent"
  9. android:layout_height="match_parent"
  10. android:textSize="20sp"/>
  11. </LinearLayout>

效果图,如图:

查询本天气预报Web Services支持的国内外城市或地区信息:

[java] view
plain
copyprint?

  1. public class CityActivity extends Activity {
  2. // WSDL文档中的命名空间
  3. private static final String targetNameSpace = "http://WebXml.com.cn/";
  4. // WSDL文档中的URL
  5. private static final String WSDL = "http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";
  6. // 需要调用的方法名(获得本天气预报Web Services支持的城市信息,根据省份查询城市集合:带参数)
  7. private static final String getSupportCity = "getSupportCity";
  8. private List<Map<String,String>> listItems;
  9. private ListView mListView;
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_main);
  14. listItems = new ArrayList<Map<String,String>>();
  15. mListView = (ListView) findViewById(R.id.province_list);
  16. new NetAsyncTask().execute();
  17. //列表单击事件监听
  18. mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  19. @Override
  20. public void onItemClick(AdapterView<?> parent, View view,
  21. int position, long id) {
  22. String mCityName = listItems.get(position).get("city");
  23. String cityName = getCityName(mCityName);
  24. Log.d("CityName", cityName);
  25. Intent intent = new Intent();
  26. //存储选择的城市名
  27. intent.putExtra("Cname", cityName);
  28. intent.setClass(CityActivity.this, WeatherActivity.class);
  29. startActivity(intent);
  30. }
  31. });
  32. }
  33. /**
  34. * 拆分“城市 (代码)”字符串,将“城市”字符串分离
  35. * @param name
  36. * @return
  37. */
  38. public String getCityName(String name) {
  39. String city = "";
  40. int position = name.indexOf(‘ ‘);
  41. city = name.substring(0, position);
  42. return city;
  43. }
  44. class NetAsyncTask extends AsyncTask<Object, Object, String> {
  45. @Override
  46. protected void onPostExecute(String result) {
  47. if (result.equals("success")) {
  48. //列表适配器
  49. SimpleAdapter simpleAdapter = new SimpleAdapter(CityActivity.this, listItems, R.layout.province_item,
  50. new String[] {"city"}, new int[]{R.id.province});
  51. mListView.setAdapter(simpleAdapter);
  52. }
  53. super.onPostExecute(result);
  54. }
  55. @Override
  56. protected String doInBackground(Object... params) {
  57. // 根据命名空间和方法得到SoapObject对象
  58. SoapObject soapObject = new SoapObject(targetNameSpace,getSupportCity);
  59. //参数输入
  60. String name = getIntent().getExtras().getString("Pname");
  61. soapObject.addProperty("byProvinceName", name);
  62. // 通过SOAP1.1协议得到envelop对象
  63. SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(
  64. SoapEnvelope.VER11);
  65. // 将soapObject对象设置为envelop对象,传出消息
  66. envelop.dotNet = true;
  67. envelop.setOutputSoapObject(soapObject);
  68. HttpTransportSE httpSE = new HttpTransportSE(WSDL);
  69. // 开始调用远程方法
  70. try {
  71. httpSE.call(targetNameSpace + getSupportCity, envelop);
  72. // 得到远程方法返回的SOAP对象
  73. SoapObject resultObj = (SoapObject) envelop.getResponse();
  74. // 得到服务器传回的数据
  75. int count = resultObj.getPropertyCount();
  76. for (int i = 0; i < count; i++) {
  77. Map<String,String> listItem = new HashMap<String, String>();
  78. listItem.put("city", resultObj.getProperty(i).toString());
  79. listItems.add(listItem);
  80. }
  81. } catch (IOException e) {
  82. e.printStackTrace();
  83. return "IOException";
  84. } catch (XmlPullParserException e) {
  85. e.printStackTrace();
  86. return "XmlPullParserException";
  87. }
  88. return "success";
  89. }
  90. }
  91. }

用于列表显示的xml重复使用,这里就不再重复写一次了,效果图,如图:

最后,根据选择的城市或地区名称获得天气情况:

[java] view
plain
copyprint?

  1. public class WeatherActivity extends Activity {
  2. //WSDL文档中的命名空间
  3. private static final String targetNameSpace="http://WebXml.com.cn/";
  4. //WSDL文档中的URL
  5. private static final String WSDL="http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";
  6. //根据城市或地区名称查询获得未来三天内天气情况、现在的天气实况、天气和生活指数
  7. private static final String getWeatherbyCityName="getWeatherbyCityName";
  8. WeatherBean mWBean;
  9. private ImageView mImageView;
  10. private EditText mCityName;
  11. private EditText mTemp;
  12. private EditText mWeather;
  13. private TextView mToday;
  14. private TextView mDetail;
  15. private int Image[];
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.weather);
  20. Image = new int[]{R.drawable.image0,R.drawable.image1,R.drawable.image2,
  21. R.drawable.image3,R.drawable.image4,R.drawable.image5,
  22. R.drawable.image6,R.drawable.image7,R.drawable.image8,
  23. R.drawable.image9,R.drawable.image10,R.drawable.image11,
  24. R.drawable.image12,R.drawable.image13,R.drawable.image14,
  25. R.drawable.image15,R.drawable.image16,R.drawable.image17,
  26. R.drawable.image18,R.drawable.image19,R.drawable.image20,
  27. R.drawable.image21,R.drawable.image22,R.drawable.image23,
  28. R.drawable.image24,R.drawable.image25,R.drawable.image26,
  29. R.drawable.image27};
  30. mWBean = new WeatherBean();
  31. mImageView = (ImageView) findViewById(R.id.picture);
  32. mCityName = (EditText) findViewById(R.id.city_name);
  33. mTemp = (EditText) findViewById(R.id.temp);
  34. mWeather = (EditText) findViewById(R.id.weather);
  35. mToday = (TextView) findViewById(R.id.today_weather);
  36. mDetail = (TextView) findViewById(R.id.city_detail);
  37. new NetAsyncTask().execute();
  38. }
  39. class NetAsyncTask extends AsyncTask<Object, Object, String> {
  40. @Override
  41. protected void onPostExecute(String result) {
  42. String image = mWBean.getWeatherPicture();
  43. int position = getImageId(image);
  44. Log.d("image", Image[position]+"");
  45. mImageView.setImageResource(Image[position]);
  46. mCityName.setText(mWBean.getCityName());
  47. mTemp.setText(mWBean.getTemp());
  48. mWeather.setText(mWBean.getWeather());
  49. mToday.setText(mWBean.getLiveWeather());
  50. mDetail.setText(mWBean.getCityDetail());
  51. super.onPostExecute(result);
  52. }
  53. public int getImageId(String picture) {
  54. int id = 0;
  55. int tempId = picture.indexOf(‘.‘);
  56. String sub = picture.substring(0, tempId);
  57. id = Integer.parseInt(sub);
  58. return id;
  59. }
  60. @Override
  61. protected String doInBackground(Object... params) {
  62. // 根据命名空间和方法得到SoapObject对象
  63. SoapObject soapObject = new SoapObject(targetNameSpace,getWeatherbyCityName);
  64. String city = getIntent().getExtras().getString("Cname");
  65. soapObject.addProperty("theCityName",city);//调用的方法参数与参数值(根据具体需要可选可不选)
  66. // 通过SOAP1.1协议得到envelop对象
  67. SoapSerializationEnvelope envelop = new SoapSerializationEnvelope(SoapEnvelope.VER11);
  68. // 将soapObject对象设置为envelop对象,传出消息
  69. envelop.dotNet = true;
  70. envelop.setOutputSoapObject(soapObject);
  71. // 或者envelop.bodyOut = soapObject;
  72. HttpTransportSE httpSE = new HttpTransportSE(WSDL);
  73. // 开始调用远程方法
  74. try {
  75. httpSE.call(targetNameSpace + getWeatherbyCityName, envelop);
  76. // 得到远程方法返回的SOAP对象
  77. SoapObject resultObj = (SoapObject) envelop.getResponse();
  78. // 得到服务器传回的数据
  79. mWBean.setCityName(resultObj.getProperty(1).toString());
  80. mWBean.setTemp(resultObj.getProperty(5).toString());
  81. mWBean.setWeather(resultObj.getProperty(6).toString());
  82. mWBean.setWeatherPicture(resultObj.getProperty(8).toString());
  83. mWBean.setLiveWeather(resultObj.getProperty(10).toString());
  84. mWBean.setCityDetail(resultObj.getProperty(22).toString());
  85. } catch (IOException e) {
  86. e.printStackTrace();
  87. return "IOException";
  88. } catch (XmlPullParserException e) {
  89. e.printStackTrace();
  90. return "XmlPullParserException";
  91. }
  92. return "success";
  93. }
  94. }
  95. }

这里没有显示全部的信息,提供了一个存储部分天气信息的类:

[java] view
plain
copyprint?

  1. public class WeatherBean {
  2. private String CityName;
  3. private String Temp;
  4. private String Weather;
  5. private String WeatherPicture;
  6. private String LiveWeather;
  7. private String CityDetail;
  8. public String getCityName() {
  9. return CityName;
  10. }
  11. public void setCityName(String cityName) {
  12. CityName = cityName;
  13. }
  14. public String getLiveWeather() {
  15. return LiveWeather;
  16. }
  17. public void setLiveWeather(String liveWeather) {
  18. LiveWeather = liveWeather;
  19. }
  20. public String getTemp() {
  21. return Temp;
  22. }
  23. public void setTemp(String temp) {
  24. Temp = temp;
  25. }
  26. public String getWeather() {
  27. return Weather;
  28. }
  29. public void setWeather(String weather) {
  30. Weather = weather;
  31. }
  32. public String getWeatherPicture() {
  33. return WeatherPicture;
  34. }
  35. public void setWeatherPicture(String weatherPicture) {
  36. WeatherPicture = weatherPicture;
  37. }
  38. public String getCityDetail() {
  39. return CityDetail;
  40. }
  41. public void setCityDetail(String cityDetail) {
  42. CityDetail = cityDetail;
  43. }
  44. }

显示天气状况的weather.xml文件:

[html] view
plain
copyprint?

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6. <LinearLayout
  7. android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"
  9. android:orientation="vertical" >
  10. <TableLayout
  11. android:layout_width="fill_parent"
  12. android:layout_height="wrap_content" >
  13. <TableRow>
  14. <TextView
  15. android:layout_width="fill_parent"
  16. android:layout_height="wrap_content"
  17. android:text="天气实况:"
  18. android:textSize="16sp" />
  19. <ImageView
  20. android:id="@+id/picture"
  21. android:layout_width="wrap_content"
  22. android:layout_height="wrap_content" />
  23. </TableRow>
  24. <TableRow>
  25. <TextView
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:layout_weight="1"
  29. android:text="城市:"
  30. android:textSize="16sp" />
  31. <EditText
  32. android:id="@+id/city_name"
  33. android:layout_width="wrap_content"
  34. android:layout_height="wrap_content"
  35. android:layout_weight="2"
  36. android:hint="城市名称"
  37. android:editable="false" />
  38. </TableRow>
  39. <TableRow>
  40. <TextView
  41. android:layout_width="wrap_content"
  42. android:layout_height="wrap_content"
  43. android:layout_weight="1"
  44. android:text="温度:"
  45. android:textSize="16sp" />
  46. <EditText
  47. android:id="@+id/temp"
  48. android:layout_width="wrap_content"
  49. android:layout_height="wrap_content"
  50. android:layout_weight="2"
  51. android:hint="今日气温"
  52. android:editable="false" />
  53. </TableRow>
  54. <TableRow>
  55. <TextView
  56. android:layout_width="wrap_content"
  57. android:layout_height="wrap_content"
  58. android:layout_weight="1"
  59. android:text="天气:"
  60. android:textSize="16sp" />
  61. <EditText
  62. android:id="@+id/weather"
  63. android:layout_width="wrap_content"
  64. android:layout_height="wrap_content"
  65. android:layout_weight="2"
  66. android:hint="今日天气"
  67. android:editable="false" />
  68. </TableRow>
  69. </TableLayout>
  70. <TextView
  71. android:id="@+id/today_weather"
  72. android:layout_width="fill_parent"
  73. android:layout_height="wrap_content"
  74. android:textSize="16sp" />
  75. <TextView
  76. android:layout_width="fill_parent"
  77. android:layout_height="wrap_content"
  78. android:text="城市简介:"
  79. android:textSize="16sp" />
  80. <TextView
  81. android:id="@+id/city_detail"
  82. android:layout_width="fill_parent"
  83. android:layout_height="wrap_content"
  84. android:textSize="16sp" />
  85. </LinearLayout>
  86. </ScrollView>

效果图如图:

这里许多功能做得不是很完善,大家可以根据自己的需要进行设计~

点击进入代码下载

时间: 2024-10-21 13:18:32

WebService使用实例的相关文章

webservice cxf 实例

转自百度空间:http://hi.baidu.com/cpuhandou/item/b8b439860afb99c9ee083d65 CXF webservice 开发入门 1.       新建一个JavaWebProject,命名为cxfDemo选择[next],为project添加userLib库.        2.       打开新建的project,在src下新建包com.handou.cxf.test.在包中新建inteface名称为HelloWorld代码如下:@WebServ

php webservice 接口 实例 机票航班时刻表

<?php header('Content-Type: text/html; charset=UTF-8'); $client = new SoapClient('http://webservice.webxml.com.cn/webservices/DomesticAirline.asmx?wsdl'); $fromcity=!empty($_POST['fromcity']) ? trim($_POST['fromcity']) : '长沙'; $tocity=!empty($_POST['

主题:Java WebService 简单实例

链接地址:主题:Java WebService 简单实例    http://www.iteye.com/topic/1135747 前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要的重复操作. 一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService].   2.创建[Class]类,命名为[ServiceHello],位于[com.

VS2008中C#开发webservice简单实例

1.创建工程 文件-> 新建->网站 如下图. 工程建好后,会自动添加如下代码: 1 using System; 2 using System.Linq; 3 using System.Web; 4 using System.Web.Services; 5 using System.Web.Services.Protocols; 6 using System.Xml.Linq; 7 8 [WebService(Namespace = "http://tempuri.org/"

WebService入门实例教程

什么是WebService 通过使用WebService,您的应用程序可以向全世界发布信息,或提供某项功能,它是基于Web的服务,通过Web进行发布.查找和使用. WebService脚本平台需支持XML+HTTP. HTTP协议是最常用的因特网协议. XML提供了一种可用于不同的平台和编程语言之间的语言. 为什么要使用WebService 最重要的事情是协同工作. 1.跨平台调用(WebService不局限于操作系统,你可以在Windows上调用linux上的WebService服务,反之亦然

Java调用WebService 接口 实例

这里给大家介绍一下,Java调用webservice的一个实例的过程. 本项目不能运行,因为接口地址不可用. 这里只是给大家介绍一个过程,同时留作自己的笔记.如果要学习,可以参照别人的实例.比较好. ①选择项目根目录的src ,右键,new --> webservice client 然后输入地址: http://172.18.100.52:456/hello?wsdl 必须要加wsdl结尾,这样才是一个webservice的接口. finlish.这时候刷新项目.可以看到项目下/src/com

Java WebService 简单实例[转载]

[注意,本文转载自  http://hyan.iteye.com/    ] 一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService]. 2.创建[Class]类,命名为[ServiceHello],位于[com.hyan.service]包下. 3.编写供客户端调用的方法,即编译方法代码. 4.进行编译 说明:编译失败的话,请将该项目引用的jdk设置

eclipse+webservice开发实例

1.參考文献: 1.利用Java编写简单的WebService实例  http://nopainnogain.iteye.com/blog/791525 2.Axis2与Eclipse整合开发Web Service  http://tech.ddvip.com/2009-05/1242968642120461.html 3.http://blog.csdn.net/lightao220/article/details/3489015 4.http://clq9761.iteye.com/blog

Java WebService 简单实例

前言:开始以下教程前,请先看第五大点的注意事项,以避免不必要的重复操作. 一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1.创建[Web Service Project],命名为[TheService].   2.创建[Class]类,命名为[ServiceHello],位于[com.hyan.service]包下.   3.编写供客户端调用的方法,即编译方法代码. 4.进行编译 说明:编译失败的话,请将该项目引用的jdk

java调用第三方的webservice应用实例

互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址:         http://www.tuicool.com/articles/iIfqma 一:调用免费的web service获取天气预报信息 1.第三方服务地址 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx http:/