千锋教育论坛

查看: 1360|回复: 0

在Android平台下WebService的操作步骤

[复制链接]

29

主题

369

帖子

815

积分

大牛

Rank: 4

发表于 16-5-24 15:53:33 | 显示全部楼层 |阅读模式
在Android平台下WebService的操作步骤


  1. package lgx.acc.updatedemo;

  2. import java.io.IOException;

  3. import org.ksoap2.SoapEnvelope;
  4. import org.ksoap2.SoapFault;
  5. import org.ksoap2.serialization.SoapObject;
  6. import org.ksoap2.serialization.SoapSerializationEnvelope;
  7. import org.ksoap2.transport.HttpTransportSE;
  8. import org.xmlpull.v1.XmlPullParserException;

  9. import android.app.Activity;
  10. import android.os.Bundle;
  11. import android.os.Handler;
  12. import android.os.Message;
  13. import android.view.View;
  14. import android.view.View.OnClickListener;
  15. import android.widget.Button;
  16. import android.widget.EditText;
  17. import android.widget.TextView;

  18. public class MainActivity extends Activity  {
  19.         private EditText phoneSecEditText;
  20.         private TextView resultView;
  21.         private Button queryButton;
  22.         Handler handler = new Handler() {
  23.                 @Override
  24.                 public void handleMessage(Message msg) {
  25.                         //在handler里面将其显示出来
  26.                         resultView.setText(msg.obj.toString());

  27.                         super.handleMessage(msg);
  28.                 }
  29.         };

  30.         @Override
  31.         protected void onCreate(Bundle savedInstanceState) {
  32.                 super.onCreate(savedInstanceState);
  33.                 setContentView(R.layout.activity_main);

  34.                 phoneSecEditText = (EditText) findViewById(R.id.phone_sec);
  35.                 resultView = (TextView) findViewById(R.id.result_text);
  36.                 queryButton = (Button) findViewById(R.id.query_btn);

  37.                 queryButton.setOnClickListener(new OnClickListener() {
  38.                         @Override
  39.                         public void onClick(View v) {
  40.                                 // 手机号码(段)
  41.                                 String phoneSec = phoneSecEditText.getText().toString().trim();
  42.                                 // 简单判断用户输入的手机号码(段)是否合法
  43.                                 if ("".equals(phoneSec) || phoneSec.length() < 7) {
  44.                                         // 给出错误提示
  45.                                         phoneSecEditText.setError("您输入的手机号码(段)有误!");
  46.                                         phoneSecEditText.requestFocus();
  47.                                         // 将显示查询结果的TextView清空
  48.                                         resultView.setText("");
  49.                                         return;
  50.                                 }
  51.                                 // 查询手机号码(段)信息
  52.                                 getRemoteInfo(phoneSec);
  53.                         }

  54.                 });

  55.         }

  56.         private void getRemoteInfo(String phoneSec) {

  57.                 final String namespace = "http://WebXml.com.cn/";
  58.                 String methodName = "getMobileCodeInfo";
  59.                 String serviceUrl = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";
  60.                 final String soapAction = namespace + methodName;

  61.                 // 1.创建SoapObject的命名空间和调用的方法名
  62.                 SoapObject soapObject = new SoapObject(namespace, methodName);
  63.                 // 2.配置soapObject的两个参数
  64.                 soapObject.addProperty("mobileCode", phoneSec);
  65.                 soapObject.addProperty("userId", "");
  66.                 // 3. 实例化SoapSerializationEnvelope,传入WebService的SOAP协议的版本号
  67.                 final SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
  68.                                 SoapEnvelope.VER10);

  69.                 // 4.设置是否调用的是.Net开发的WebService
  70.                 envelope.setOutputSoapObject(soapObject);
  71.                 envelope.dotNet = true;

  72.                 // 5.创建HttpTransportSE对象,传递WebService服务器地址
  73.                 final HttpTransportSE transportSE = new HttpTransportSE(serviceUrl);

  74.                 Runnable runnable = new Runnable() {

  75.                         @Override
  76.                         public void run() {
  77.                                 try {
  78.                                         //调用webService
  79.                                         transportSE.call(soapAction, envelope);
  80.                                 } catch (IOException e) {
  81.                                         e.printStackTrace();
  82.                                 } catch (XmlPullParserException e) {
  83.                                         e.printStackTrace();
  84.                                 }

  85.                                 try {
  86.                                         //获取数据
  87.                                         Object result = envelope.getResponse();
  88.                                         Message msg = Message.obtain();
  89.                                         msg.obj = result;
  90.                                         handler.sendMessage(msg);
  91.                                 } catch (SoapFault e) {
  92.                                         // TODO Auto-generated catch block
  93.                                         e.printStackTrace();
  94.                                 }
  95.                         }
  96.                 };

  97.                 new Thread(runnable).start();

  98.         }

  99.         
  100. }
复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们

电话:400-654-7778
交流群:523516910

点击咨询

学习资料

千锋教育

订阅|小黑屋|手机版|千锋教育论坛 ( 京ICP备12003911号-3

GMT+8, 20-8-10 23:54 , Processed in 0.302539 second(s), 43 queries .

Powered by 千锋教育 X3.2

© 2001-2015

快速回复 返回顶部 返回列表