android调用webservice接口 手机号所在地查询 新手总结
2014-07-15 16:38
211 查看
1.先下载ksoap2 的jar包,从百度中搜下就能找到下载地址,我用的是2.3版本的。<p>
2.新建一个android项目,.将下载的ksoap2的jar包放到android项目的libs文件夹下,并右击build path==》add to buildpath (为防止出现找不到类的错误,网上都这样说)</p><p>
3.项目结构的主要的几个文件</p><p>
项目webserviceClient</p><p>
|----src--com.example.webserviceclient.MainActivity</p><p>
|--res--layout--activity_main.xml</p><p>
|--AndroidMainfest.xml</p><p>首先是布局代码:</p><p>
<span style="color:#3333ff;">activity_main.xml</span></p>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/editTextNum" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="32dp" android:ems="10" > <requestFocus /> </EditText> <Button android:id="@+id/btnSearch" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_below="@+id/editTextNum" android:layout_marginTop="42dp" android:text="查询" /> <TextView android:id="@+id/textViewResult" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/btnSearch" android:layout_centerVertical="true" android:text="" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout>
然后MainActivity.java文件
package com.example.webserivceclient; import org.ksoap2.SoapEnvelope; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import android.os.Build; import android.os.Bundle; import android.os.StrictMode; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; @TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi") public class MainActivity extends Activity { private Button searchButton; private EditText numEditText; private TextView resultTextView; @TargetApi(Build.VERSION_CODES.GINGERBREAD) @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); searchButton = (Button)findViewById(R.id.btnSearch); numEditText = (EditText)findViewById(R.id.editTextNum); resultTextView = (TextView)findViewById(R.id.textViewResult);
searchButton.setOnClickListener(new SearchBtnOnclickListener()); if (Build.VERSION.SDK_INT >= 11) { StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build()); } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } class SearchBtnOnclickListener implements OnClickListener{ @Override public void onClick(View arg0) { String phoneNum = numEditText.getText().toString().trim(); if ("".equals(phoneNum) || phoneNum.length() < 7) { Toast.makeText(getApplicationContext(), "输入手机号不合规范!", Toast.LENGTH_LONG).show(); numEditText.requestFocus(); return; } resultTextView.setText(getRemoteInfo(phoneNum)); } } public String getRemoteInfo(String phoneSec) { String nameSpace = "http://WebXml.com.cn/";// 命名空间 String methodName = "getMobileCodeInfo";// 调用的方法名称 String endPoint = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";// EndPoint String soapAction = "http://WebXml.com.cn/getMobileCodeInfo";// SOAP Action SoapObject rpc = new SoapObject(nameSpace, methodName); // 设置需调用WebService接口需要传入的两个参数mobileCode、userId,不可以随便写,必须和提供的参数名相同 rpc.addProperty("mobileCode", phoneSec); rpc.addProperty("userId", ""); // 生成调用WebService方法的SOAP请求信息,并指定SOAP的版本 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.bodyOut = rpc; // 设置是否调用的是dotNet开发的WebService envelope.dotNet = true; // 等价于envelope.bodyOut = rpc; envelope.setOutputSoapObject(rpc); HttpTransportSE transport = new HttpTransportSE(endPoint); try { // 调用WebService transport.call(soapAction, envelope); } catch (Exception e) { e.printStackTrace(); } // 获取返回值
SoapObject object = (SoapObject) envelope.bodyIn; // 获取返回的结果 String result = object.getProperty("getMobileCodeInfoResult") .toString(); return result; } }
AndroidMainfest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.webserivceclient" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.webserivceclient.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
相关文章推荐
- android中webService接口调用示例:查询电话号码所在地
- android使用ksoap2调用webservice接口实现电话号码查询功能
- 我的Android进阶之旅------>关于调用Webservice查询火车票时刻表的几个接口介绍
- android端调用服务端的webservice接口,报错总结。
- Android 通过WebService调用天气预报接口
- android使用ksoap2调用webservice接口返回错误HTTP status: 500
- android 通过KSOAP调用.NET webservice中的服务接口
- Android开发中webService接口调用示例
- 调用webservice接口总结 写给接触webservice经验不多的学子们
- PHP调用WEBSERVICE接口常见问题答疑以及总结
- 在Android中调用WebService查询手机号码归属地。
- android调用Webservice——天气情况查询
- android调用Webservice——天气情况查询(更新,显示自己想显示的信息)
- PHP调用淘宝IP地址查询接口查询IP所在地信息实例
- Android开发中调用Spring CXF整合发布的WebService接口为什么抛出异常错误?
- android调用webservice接口应用实例
- 在android中使用xml调用webservice,实现自己的单词查询
- android调用webservice接口应用实例
- android ksoap2调用.net Webservice 方法总结
- android 调用webservice 接口