获取城市天气信息的简单例子-----WebService
来源:互联网 发布:农产品交易软件 编辑:程序博客网 时间:2024/06/08 06:52
本例是通过第三方类库ksoap2来调用天气WebService的简单实例
前提:
1.下载kSoap2.jar包;
2.在AndroidManifest.xml文件中声明网络访问权限
<uses-permission android:name="android.permission.INTERNET" />//这句话放在</activity>标签后面即可;
先上代码:
1.activity_main.xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/cityName" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入城市名称" android:ems="10" > <requestFocus /> </EditText> <Button android:id="@+id/getWeather" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取天气信息" /> </LinearLayout>
2.MainActivity代码:
import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import org.xmlpull.v1.XmlPullParserException;import android.support.v7.app.ActionBarActivity;import android.support.v7.app.ActionBar;import android.support.v4.app.Fragment;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;import android.widget.EditText;import android.widget.Spinner;import android.widget.Toast;import android.os.Build;public class MainActivity extends ActionBarActivity {final String NAMESPACE ="http://WebXml.com.cn/";//webService地址final String URL = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";final String METHOD_NAME = "getWeatherbyCityName";final String SOAP_ACTION = "http://WebXml.com.cn/getWeatherbyCityName";private Button btnWeather;private EditText cityName;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnWeather = (Button) findViewById(R.id.getWeather);cityName = (EditText) findViewById(R.id.cityName);btnWeather.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) { getWeather();}});}private void getWeather(){Thread thread = new Thread( new Runnable() {//@Overridepublic void run() {try {//获取输入的城市名称String cityname = cityName.getText().toString();final String NAMESPACE ="http://WebXml.com.cn/";//webService地址final String URL = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";final String METHOD_NAME = "getWeatherbyCityName";final String SOAP_ACTION = "http://WebXml.com.cn/getWeatherbyCityName"; //命名空间+方法名// 创建HttpTransportSE对象,传递WebService服务器地址HttpTransportSE ht = new HttpTransportSE(URL);//1.创建SoapObject 并指定访问的名称空间及方法名SoapObject sop = new SoapObject(NAMESPACE, METHOD_NAME);//2.设置参数值sop.addProperty("theCityName", cityname);/**常量SoapEnvelope.VER10:对应于SOAP 1.0规范* 常量SoapEnvelope.VER11:对应于SOAP 1.1规范 * 常量SoapEnvelope.VER12:对应于SOAP 1.2规范* 这样,无论要调用的webservice采用了哪一个SOAP规范,你都可以轻松应对。* */// 实例化SoapSerializationEnvelope,传入WebService的SOAP协议的版本号 SoapSerializationEnvelope senp = new SoapSerializationEnvelope(SoapEnvelope.VER11);//设置是否调用.net开发的webServicesenp.dotNet = true;//设置对象的bodyOut属性senp.setOutputSoapObject(sop);//senp.bodyOut = sop;ht.debug=true;//执行call方法 发送请求//ht.call(null, senp);ht.call(SOAP_ACTION, senp);//获取结果SoapObject obj = (SoapObject) senp.bodyIn;SoapObject detail = (SoapObject) obj.getProperty("getWeatherbyCityNameResult");Log.i("MyTag", detail.toString());//效果 : 会输出从网络获取的对应城市的天气信息} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (XmlPullParserException e) {// TODO Auto-generated catch blocke.printStackTrace();}}});Log.i("MyTag", "start");thread.start();}}
0 0
- 获取城市天气信息的简单例子-----WebService
- java调用webservice获取指定城市天气情况的例子
- flex webservice获取城市的天气情况
- webservice示例获取城市天气
- webservice--获取天气信息
- [BlackBerry代码] 简单的访问sina天气频道获取天气信息的例子
- android webservice获取城市天气情况
- android webservice获取城市天气情况
- android webservice获取城市天气情况
- android webservice获取城市天气情况
- WebService获取Google天气信息
- jQuery获取新浪城市与天气信息
- 天气获取通过经纬度或城市信息
- 获取指定城市的天气
- 关于利用url动态获取天气的信息以及各个城市天气的id代码
- 使用WebService获取天气信息接口信息
- Java通过webservice接口获取天气信息
- Kettle通过Webservice获取天气信息
- 分享MYSQL中的各种高可用技术
- [读书笔记]Windows程序内部运行机制【一】
- Oracle各种连接使用
- Collection子接口(List/Set/Queue/SortedSet)
- 【Linux VI】 实用总结
- 获取城市天气信息的简单例子-----WebService
- 简单的快排函数
- 305
- Hadoop Shell命令字典(可收藏)
- C 十字链表
- ubuntu安装rabbitmq和python的使用实现
- String的split()方法探索和大揭秘
- Java关键字final、static使用总结
- 实现CDHtmlDialog无标题栏拖动窗口