参考网上的例子实现一个简单的天气查看功能。 界面包含一个按钮,当点击按钮时 已tips 提示框的方式展现天气信息。
package com.lht.WebService;
import java.io.UnsupportedEncodingException;
import android.app.Activity;
import android.os.Bundle;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class WebService extends Activity {
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 Button okButton;
private SoapObject detail;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
okButton = (Button) findViewById(R.id.ok);
okButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
showWeather();
}
});
}
private void showWeather() {
String city = "西安";
getWeather(city);
}
@SuppressWarnings("deprecation")
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);
AndroidHttpTransport ht = new AndroidHttpTransport(URL);
ht.debug = true;
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.setOutputSoapObject(rpc);
ht.call(SOAP_ACTION, envelope);
SoapObject result = (SoapObject) envelope.bodyIn;
detail = (SoapObject) result
.getProperty("getWeatherbyCityNameResult");
System.out.println("result" + result);
System.out.println("detail" + detail);
Toast.makeText(WebService.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(WebService.this, weatherToday, Toast.LENGTH_LONG).show();
}
}
分享到:
相关推荐
本实例将深入探讨Android中如何使用Webservice,特别是针对天气预报服务的调用。我们将关注以下几个核心知识点: 1. **Web Service基础**:Web Service是一种基于互联网的、标准化的、能够跨平台进行通信的软件服务...
本文将详细介绍如何在Android应用中利用WebService接口连接到SQLServer数据库,实现数据的增删改查操作。 首先,理解概念: 1. Android:Android是一种开源操作系统,主要用于移动设备,如智能手机和平板电脑。 2. ...
在这个“android 访问webService Demo”中,我们将探讨如何在Android应用中集成和使用Web Service,尤其适合初学者快速上手。 一、理解Web Service Web Service是一种跨平台的通信机制,它允许不同的应用程序通过...
以上就是"Android使用webservice客户端实例"的关键知识点,涵盖了从基础概念到具体实现的多个方面。通过学习这些内容,开发者可以有效地将Android应用与各种Web服务集成,实现数据交换和功能扩展。
首先,Android平台对网络访问有严格的限制,必须在主线程之外进行,以避免阻塞UI。可以使用AsyncTask、IntentService或者自定义线程池来执行网络操作。在这个案例中,我们可能会看到如何在后台线程中调用Web Service...
Android 配合 WebService 访问远程数据库 Android 与服务器端数据交互是移动应用开发中非常重要的一部分。在本文中,我们将介绍如何使用 WebService 访问远程数据库,并在 Android 客户端中调用服务器端方法获取...
在Android开发中,Web服务(通常指WebService)是一种允许应用程序之间进行交互的技术,它使得移动应用,如Android应用,能够与远程服务器进行数据交换。在本案例中,开发者遇到了一个常见的问题:`java.lang....
2. 确保你的Android设备或模拟器可以访问Web Service所在的网络。 3. 考虑错误处理和网络连接问题,例如异常捕获和重试机制。 4. 在实际应用中,建议使用异步任务或Retrofit等现代网络库来避免阻塞主线程。 通过这...
本篇主要讨论的是如何自定义一个封装好的WebService访问模块,支持回调接口。 1. **创建WebService接口**:首先,我们需要定义一个接口,这个接口会包含所有可能的WebService请求方法。例如,我们可以创建一个`...
本实例将深入探讨如何在Android应用中与Web Service进行通信,以实现数据的获取和传输。 首先,Web Service通常采用SOAP(Simple Object Access Protocol)或REST(Representational State Transfer)协议。在这个...
在Android开发中,访问Web Service是一项常见的任务,主要用于实现客户端与服务器端的数据交互。Web Service是一种基于网络的、独立于平台的应用程序接口,它能够通过HTTP协议进行通信,允许不同系统间的互操作性。...
通过这个实例,我们可以深入理解Android网络编程以及与WebService的交互方式。 一、Android网络请求基础 在Android中,进行网络操作主要使用HttpURLConnection或第三方库如OkHttp、Volley等。本Demo可能使用了...
在Android开发中,Web服务(Webservice)是一个重要的组成部分,它允许移动应用与远程服务器进行交互,获取或发送数据。本实例将详细讲解如何利用Web服务来查询电话号码的归属地信息。 首先,理解Web服务的基本概念...
本文将深入探讨如何使用Android(Java)通过C#编写的Web服务访问SQL Server实例。 首先,我们要理解Web服务的基本概念。Web服务是一种基于互联网的,能够被其他应用程序(如Android应用)调用的接口。常见的Web服务...
在Android开发中,访问Web Servicedemo涉及到的关键技术是客户端如何与远程服务器进行交互,以获取或发送数据。Web Service通常是一种基于HTTP协议的服务,它允许不同系统间的应用程序通过网络进行通信。本示例着重...
- 在Android应用中实例化生成的stub类,然后调用对应的方法。 - 参数可以是基本类型、List、Map或自定义对象,根据Web Service接口定义。 - 注意线程管理,由于网络操作不应在主线程进行,通常会使用AsyncTask或...
5. **权限管理**:在AndroidManifest.xml文件中,需要添加`<uses-permission>`标签,如`<uses-permission android:name="android.permission.INTERNET" />`,以允许应用访问网络。 6. **异步处理**:由于网络操作...
总结,Android应用基于Retrofit2+Okhttp3通过SOAP协议请求WebService是一种有效的解决方案,它简化了网络调用的复杂性,同时利用了OkHttp3的高性能特性。通过定义接口、配置Retrofit实例、创建SOAP请求和处理响应,...
- 网络权限:在AndroidManifest.xml中添加`<uses-permission android:name="android.permission.INTERNET" />`,以允许应用访问网络。 - 异步调用:由于Android主线程不能执行耗时操作,建议在子线程中调用...