Android 访问WebService

通过几个例子和自己的修改实现了Android访问WebService

[1].[代码] [Java]代码 跳至 [1] [2]

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

private

static

final

String NAMESPACE =
"http://WebXml.com.cn/";

    //
WebService地址

    private

static

final

String URL =
"http://www.webxml.com.cn/webservices/weatherwebservice.asmx";

    private

static

final

String METHOD_NAME =
"getWeatherbyCityName";

    private

static

final

String SOAP_ACTION =
"http://WebXml.com.cn/getWeatherbyCityName";

    private

String weatherToday;

    private

Button mBtnOk;

    private

TextView mTvInfo;

    private

EditText mEtCityName;

    private

SoapObject detail;

    private

Handler handler =
new

Handler() {

        @Override

        public

void

handleMessage(Message msg) {

            switch

(msg.what) {

            case

0
:

                mTvInfo.setText(weatherToday);

                break;

            default:

                break;

            }

        }

    };

    @Override

    protected

void

onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        mBtnOk
= (Button)
this.findViewById(R.id.btn_ok);

        mTvInfo
= (TextView)
this.findViewById(R.id.tv_info);

        mEtCityName
= (EditText)
this.findViewById(R.id.et_cityname);

        mBtnOk.setOnClickListener(new

OnClickListener() {

            @Override

            public

void

onClick(View v) {

                final

String cityName = mEtCityName.getText().toString().trim();

                

                new

Thread(
new

Runnable() {

                    @Override

                    public

void

run() {

                        getWeather(cityName);

                    }

                }).start();

            }

        });

        

    }

    private

void

getWeather(String cityName) {

        try

{

            SoapObject
request =
new

SoapObject(NAMESPACE, METHOD_NAME);

            request.addProperty("theCityName",
cityName);

            SoapSerializationEnvelope
envelope =
new

SoapSerializationEnvelope(

                    SoapEnvelope.VER11);

            envelope.bodyOut
= request;

            envelope.dotNet
=
true;

            envelope.setOutputSoapObject(request);

            HttpTransportSE
ht =
new

HttpTransportSE(URL);

            ht.debug
=
true;

            ht.call(SOAP_ACTION,
envelope);

            //
SoapObject result = (SoapObject) envelope.bodyIn;

            //
detail = (SoapObject)

            //
result.getProperty("getWeatherbyCityNameResult");

            detail
= (SoapObject) envelope.getResponse();

            parseWeather(detail);

            return;

        }
catch

(Exception e) {

            e.printStackTrace();

        }

    }

    private

void

parseWeather(SoapObject detail) {

        String
date = detail.getProperty(
6).toString();

        

        System.out.println("1
: "

+ detail.getProperty(
1)
+
"\n"

                     +
"2
: "

+ detail.getProperty(
2)
+
"\n"

                     +
"3
: "

+ detail.getProperty(
3)
+
"\n"

                     +
"4
: "

+ detail.getProperty(
4)
+
"\n"

                     +
"5
: "

+ detail.getProperty(
5)
+
"\n"

                     +
"6
: "

+ detail.getProperty(
6)
+
"\n"

                     +
"7
: "

+ detail.getProperty(
7)
+
"\n"

                     +
"8
: "

+ detail.getProperty(
8)
+
"\n");

        weatherToday
=
"cityName
: "

+ detail.getProperty(
1);

        weatherToday
= weatherToday +
"\n今天
: "

+ date.split(
"
"
)[0];

        weatherToday
= weatherToday +
"\n天气
: "

+ date.split(
"
"
)[1];

        weatherToday
= weatherToday +
"\n气温
: "

                +
detail.getProperty(
5).toString();

        weatherToday
= weatherToday +
"\n风力
: "

                +
detail.getProperty(
7).toString()
+
"\n";

        handler.sendEmptyMessage(0);

        

        Looper.prepare();

        Toast.makeText(this,
weatherToday, Toast.LENGTH_SHORT).show();

        Looper.loop();

    }

[2].[文件] webService.zip ~ 2MB    下载(189) 跳至 [1] [2]

时间: 2024-08-25 20:18:32

Android 访问WebService的相关文章

Mono for android 访问Webservice和WebApi以及获取和解析JSON

先看效果,注意:(1)这里由于我的模拟器不支持中文输入,所以,对于这张效果图,我是直接在代码中写死了我的查询城市,在下面的代码中我是没有把要查询的城市写死的. (2)读者要想成功使用本示例的所有代码的话(就是一成不改,这也太懒了哈!),需要读者自己申请一个key,然后放入我的代码中,下面的代码注释中我也有说道,请认真观看. (3)改代码本人亲测可行,有图有真相. (4)本文全部原创,热烈欢迎广大网友分享本文,但请标明出处.也欢迎大家和我积极交流相关知识. 布局如大家所见,很简陋,我就不贴代码了哈

android采用Ksoap2访问webservice,AndroidHttpTransport call方法异常

============问题描述============ 使用java工程以同样的方式去访问webservice没有任何问题,也返回正常的数据,但是在android中执行到call方法的时候就抛出异常,但是异常是null不能去取出正常的数据,代码如下,求各位大神指教一下 ============解决方案1============ 1.应用需要有访问网络的权限. 2. 4.0中不能再主线程中发起网络请求,这个坑我也坑了好久.

Android 调用webService(.net平台)

什么是webservice? Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序.Web   Service所使用的是Internet上统一.开放的标准,如HTTP.XML.SOAP(简单对象访问协议).WSDL(webservice描述语言)等,所以Web   Service可以在任何支持这些标准的环境(Windows,Lin

Android平台调用WebService详解

上篇文章已经对Web Service及其相关知识进行了介绍(Android开发之WebService介绍 ),相信有的朋友已经忍耐不住想试试在Android应用中调用Web Service.本文将通过一个简单的示例讲解和演示Android平台的Web Service开发. Ksoap2-android简介       在Android平台调用Web Service需要依赖于第三方类库ksoap2,它是一个SOAP Web service客户端开发包,主要用于资源受限制的Java环境如Applet

Android调用WebService之客户端实现(二)

原创文章,转载请注明出处:http://www.blog.csdn.net/tangcheng_ok 要在Android调用WebService,必须需要一些库来支持,上面的例子中是,我们通过XFire来访问WebService,但这些库对于我们Android客户端就不适合了.这里介绍一个google code上的一个开源项目Ksoap2-android,Ksoap2-android提供了一个轻量而高效的SOAP库访问WebService. 下载ksoap2-android-assembly-2

ASP.NET MVC中使用ASP.NET AJAX异步访问WebService

使用过ASP.NET AJAX的朋友都知道,怎么通过ASP.NET AJAX在客户端访问WebService,其实在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService 也没什么大的差别. 在ASP.NET应用程序里使用ASP.NET AJAX访问WebService通常都是通过ScriptMananger引入WebService生成客户端代理的方法,同时也可以使用Microsoft Ajax Library来完成.本文将介绍在ASP.NET MVC中使用ASP.NE

【转】Spring的WebServiceTemplate访问WebService的方法及其本质原理

WebService客户端调用的本质就是将SAOP格式的XML通过通信协议发送到WebService的服务器端,然后接收服务器端返回的XML. 本文简单介绍一下如何通过Spring提供的WebServiceTemplate访问Webservice,WebServiceTemplate与调用webservice的客户端已及webservice服务器端示意图如下(图片来源于Spring in Action): 这里以SOAP over HTTP为例,开发步骤如下: 1,在Spring的配置文件中配置

C语言访问webservice小例子

近期做的一个项目中,需要访问webservice获取一些json格式的数据.返回的页面内容只是json格式的数据,并不像实际页面那么复杂.所以不想再引入工具库,直接用socket简单实现了. 以下代码并不是实际项目源码,是我摘取出来整理成的一个小例子分享给大家.代码本身很容易理解,但是需要一些socket编程和http协议基础. #include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #inc

Android GIS +webservice

Android新手经典入门教程 Android开发教程(完全免费版) Android SDK v3.1.0 Android定位功能(一) Android定位功能(二) Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图 [019] Android平台调用WebService详解 Android 获取GPS位置,包含apn\wifi\gps Setting to update Android applications only if connected with W