`
rayln
  • 浏览: 434227 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

WebService利用KSoap2调用天气预报接口

 
阅读更多
转载:http://www.cnblogs.com/ghj1976/archive/2011/04/26/2028904.html

效果图:


使用的ksoap包在附件
KSOAP2 地址:http://code.google.com/p/ksoap2-android/
1. 导入ksoap2的jar包

2. 在AndroidManifest.xml中加入访问网络权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>


3. 看完整代码:
WeatherActivity.java
package com.cn;

import java.io.UnsupportedEncodingException;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class WeatherActivity extends Activity {
	private Button okButton;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        okButton = (Button) this.findViewById(R.id.btn_Search);
		okButton.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {
				  String city = "上海";
				  getWeather(city);  
			}

		});
    }
    private static final String NAMESPACE = "http://WebXml.com.cn/";
	// WebService地址
	private static String URL = "http://www.webxml.com.cn/webservices/weatherwebservice.asmx";
	private static final String METHOD_NAME = "getWeatherbyCityName";
	private static String SOAP_ACTION = "http://WebXml.com.cn/getWeatherbyCityName";
	private String weatherToday;
	private SoapObject detail;

	public void getWeather(String cityName) {
		try {
			System.out.println("rpc------");
			SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME);
			System.out.println("rpc" + rpc);
			System.out.println("cityName is " + cityName);
			rpc.addProperty("theCityName", cityName);
			
			SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
			envelope.bodyOut = rpc;
			envelope.dotNet = true;
			envelope.setOutputSoapObject(rpc);
			
			HttpTransportSE ht = new HttpTransportSE(URL);

			//AndroidHttpTransport ht = new AndroidHttpTransport(URL);
			ht.debug = true;

			ht.call(SOAP_ACTION, envelope);
			//ht.call(null, envelope);

			//SoapObject result = (SoapObject)envelope.bodyIn;
			//detail = (SoapObject) result.getProperty("getWeatherbyCityNameResult");

			detail =(SoapObject) envelope.getResponse();
			
			//System.out.println("result" + result);
			System.out.println("detail" + detail);
			Toast.makeText(this, detail.toString(), Toast.LENGTH_LONG).show();
			parseWeather(detail);

			return;
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void parseWeather(SoapObject detail)
			throws UnsupportedEncodingException {
		String date = detail.getProperty(6).toString();
		weatherToday = "今天:" + date.split(" ")[0];
		weatherToday = weatherToday + "\n天气:" + date.split(" ")[1];
		weatherToday = weatherToday + "\n气温:"
				+ detail.getProperty(5).toString();
		weatherToday = weatherToday + "\n风力:"
				+ detail.getProperty(7).toString() + "\n";
		System.out.println("weatherToday is " + weatherToday);
		Toast.makeText(this, weatherToday, Toast.LENGTH_LONG).show();

	}
}
分享到:
评论

相关推荐

    Android之Webservice详解与调用天气预报Webservice完整实例

    在本实例中,我们将使用Ksoap2来与天气预报的Webservice进行交互。首先,需要在项目中引入ksoap2-android库,然后使用其提供的类和方法来构造SOAP请求并解析响应。 4. **SOAP请求构造**:SOAP消息由Header和Body两...

    android-Ksoap2简单天气预报查询

    为了实现天气查询功能,我们需要使用Ksoap2来调用WebService接口。Ksoap2允许我们在Android应用中发送SOAP请求,接收并解析响应的XML数据。以下是使用Ksoap2的基本步骤: 1. 添加Ksoap2依赖:在项目的build.gradle...

    android 利用ksoap2制作天气预报,绝对原创

    总结起来,利用ksoap2在Android上实现天气预报应用,需要理解SOAP协议、ksoap2库的使用,以及Android的网络权限管理。通过创建一个简单的Activity,调用Web服务,解析响应并显示结果,可以掌握这一核心技能。对于...

    android用ksoap2调用webservice接口查询

    下面将详细讲解如何在Android中使用KSOAP2来调用Webservice接口进行查询操作。 首先,了解SOAP。SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。它允许应用程序通过HTTP协议发送和接收数据,...

    安卓Android源码——WebService+ksoap2天气查询项目.zip

    这个压缩包文件“安卓Android源码——WebService+ksoap2天气查询项目.zip”是关于使用Android平台进行Web服务调用的示例项目。它涉及到的主要知识点包括Android应用开发、WebService通信以及ksoap2库的使用。 1. **...

    Android 使用ksoap2调用Webservice实例

    使用ksoap2调用Webservice实例 需将lib文件夹设置为源文件夹 在AndroidManifest.xml文件中加入&lt;uses-permission android:name="android.permission.INTERNET" /&gt;

    Android应用源码WebService+ksoap2天气查询项目.zip

    该压缩包文件“Android应用源码WebService+ksoap2天气查询项目.zip”主要包含了一个基于Android平台的天气查询应用的源代码,使用了Web Service技术和ksoap2库来实现。这个项目是一个很好的学习资源,帮助开发者了解...

    Android调用Webservice使用的ksoap2包

    本文将详细介绍如何使用Ksoap2来调用.NET WebService。 1. **理解SOAP**: SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。它定义了一种标准的消息结构,允许不同系统之间的应用程序进行通信,...

    WebService_ksoap2_jar

    本篇文章将详细探讨如何在Android中利用ksoap2库来调用WebService接口,并通过jar包的方式进行集成。 **ksoap2库介绍** ksoap2是一个轻量级的开源库,专门用于Android平台,它使得Android应用程序能够方便地与基于...

    使用KSOAP2调用WebService

    本文将详细介绍如何在Android应用中使用KSOAP2来调用WebService。 首先,为了在Android项目中使用KSOAP2,你需要下载并添加对应的jar文件。你可以从Google Code仓库...

    Android中ksoap2-android调用WebService 实现天气预报

    总的来说,ksoap2-android为Android开发者提供了一种方便的方式来调用SOAP Web服务,获取如天气预报这样的远程数据。虽然现代的API通常采用JSON格式并使用RESTful架构,但理解如何使用ksoap2-android仍然是学习...

    Android使用ksoap2+协程+handler实现WebService

    本示例主要探讨如何在Android应用中利用kotlin的协程(Coroutines)和ksoap2库来实现对WebService的调用,并解决在API 30及以上版本中Handler过时的问题。 一、ksoap2库介绍 ksoap2是一个轻量级的开源库,专为...

    android 利用ksoap调用webservice工具

    android 利用ksoap调用webservice工具

    在android中使用KSOAP2调用webservice

    由于Android SDK本身并未内置调用Web Service的库,开发者通常会采用第三方库KSOAP2来实现这一功能。 KSOAP2是一个轻量级的Java库,专门为移动设备设计,适用于Android系统。它简化了SOAP消息的构建、发送和解析...

    在OPhone 中使用KSOAP2调用WebService

    详细讲解了怎么在OPhone 中使用KSOAP2调用WebService 附有例子

    安卓调用WebService(ksoap2)-飞机航班Dome

    本示例“安卓调用WebService(ksoap2)-飞机航班Dome”是针对新手的一个实践项目,它演示了如何在Android应用中使用ksoap2库来调用一个Web服务接口,查询飞机航班信息。下面我们将详细探讨这个过程涉及的知识点。 1...

    xfire开发webservice以及Android利用ksoap2访问webservice

    本教程将深入探讨如何使用XFire开发Web服务,并在Android应用中通过KSOAP2进行调用。 首先,我们需要了解XFire的基础知识。XFire(现已被Apache CXF项目合并)是一个轻量级的Web服务框架,它支持SOAP、RESTful和XML...

Global site tag (gtag.js) - Google Analytics