亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android 采用KSOAP2方式訪問WebService

系統 1854 0

????? 本文主要采用KSOAP2-Android的方式訪問WebService。

???????? 采用WebService的地址:

http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx

?

如下:

?

? Android 采用KSOAP2方式訪問WebService

?

?

?

?

?

?

?

?

?

    package com.easyway.android.ws;

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.os.StrictMode;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
	  
/** 
 * 
 * Android平臺調用WebService(手機號碼歸屬地查詢) 
 * 
 * 
 * 添加Ksoap2android的方式如下:
 *    1.在eclipse創建user library 
 *    2.點擊項目選擇“Build Path”的“Configurtion Biuid Path ”
 *    3.點擊相關的" add libray "選擇相關的jar對一個的library即可
 *    
 * 
 * 
 * WebService的路徑如下:
 *    http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo
 *    
 *  采用KSOAP2Android 調用WebService服務需要采用知道WebService相關的信息如下
 *      命名空間   
 *	        String nameSpace = "http://WebXml.com.cn/";  
 *	         調用的方法名稱   
 *	        String methodName = "getMobileCodeInfo";  
 * 	   EndPoint   
 *	        String endPoint = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";  
 *	   SOAP Action   
 *	        String soapAction = "http://WebXml.com.cn/getMobileCodeInfo"; 
 *    
 *      
 *  聯網相關的服務必須(Android2.2以上的版本 )兩個條件:
 *     	1.添加網絡訪問的權限
 *           <uses-permission android:name="android.permission.INTERNET"/>
 *      2.添加網絡訪問的策略    
 *          //添加版本兼容性的網絡訪問限制性模式
 * 	    	//設置相關的線程模式
 * 	    	StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()     
 * 	            .detectDiskReads()     
 * 	            .detectDiskWrites()     
 * 	            .detectNetwork()   // or .detectAll() for all detectable problems      
 * 	            .penaltyLog()     
 * 	            .build());     
 * 	    	 //設置相關的虛擬機策略
 * 		     StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()     
 * 		            .detectLeakedSqlLiteObjects()     
 * 		            //.detectLeakedClosableObjects()     
 * 		            .penaltyLog()     
 * 		            .penaltyDeath()     
 * 		            .build());  
 * 
 * 
 *  
 * @author longgangbai 
 * 
 * @date 2011年11月29日16:26:54
 */  
public class AndroidQueryTelCodeWSActivity extends Activity {  
	    private EditText phoneSecEditText;  
	    private TextView resultView;  
	    private Button queryButton;  
	  
	    /**
	     * 
	     */
	    @Override  
	    public void onCreate(Bundle savedInstanceState) {  
	       //添加版本兼容性的網絡訪問限制性模式
	    	//設置相關的線程模式
	    	StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()     
	            .detectDiskReads()     
	            .detectDiskWrites()     
	            .detectNetwork()   // or .detectAll() for all detectable problems      
	            .penaltyLog()     
	            .build());     
	    	 //設置相關的虛擬機策略
		     StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()     
		            .detectLeakedSqlLiteObjects()     
		            //.detectLeakedClosableObjects()     
		            .penaltyLog()     
		            .penaltyDeath()     
		            .build());  

	        super.onCreate(savedInstanceState);  
	        this.setTitle(AndroidQueryTelCodeWSActivity.class.getName());
	        //獲取手機屏幕大小的設置
	        getMobileSize();  
            //設置相關的內容視圖布局	        
	        setContentView(R.layout.main);
	        //初始化視圖的方法
	        initView();  
	        //設置事件的監聽器器方法
	        setEventListener();  
	    }
	    
        /**
         * 設置視圖的信息
         */
		private void initView() {
			//
	        phoneSecEditText = (EditText) findViewById(R.id.phone_sec);  
	        resultView = (TextView) findViewById(R.id.result_text);  
	        queryButton = (Button) findViewById(R.id.query_btn);
		}

		/**
		 * 設置事件的監聽方法
		 */
		private void setEventListener() {
			queryButton.setOnClickListener(new OnClickListener() {  
	            @Override  
	            public void onClick(View v) {  
	                // 手機號碼(段)   
	                String phoneSec = phoneSecEditText.getText().toString().trim();  
	                // 簡單判斷用戶輸入的手機號碼(段)是否合法   
	                if ("".equals(phoneSec) || phoneSec.length() < 7) {  
	                    // 給出錯誤提示   
	                    phoneSecEditText.setError("您輸入的手機號碼(段)有誤!");  
	                    phoneSecEditText.requestFocus();  
	                    // 將顯示查詢結果的TextView清空   
	                    resultView.setText("");  
	                    return;  
	                }  
	                // 查詢手機號碼(段)信息   
	                getRemoteInfo(phoneSec);  
	            }  
	        });
		}
        /**
         * 獲取手機的屏幕的大小的方法
         */
		private void getMobileSize() {
			//Android開發中經常需要獲得手機屏幕的大小,
			//常用的方法就是用 DisplayMetrics 類來獲取手機畫面寬高
	        DisplayMetrics displaysMetrics = new DisplayMetrics();  
	        getWindowManager().getDefaultDisplay().getMetrics(displaysMetrics); 
	        //設置手機的標題
	        setTitle("手機屏幕分辨率:" + displaysMetrics.widthPixels + "*" +displaysMetrics.heightPixels) ;
		}  
	  
	    /** 
	     * 手機號段歸屬地查詢 
	     *  
	     * @param phoneSec 手機號段 
	     */  
	    public void getRemoteInfo(String phoneSec) {  
	        // 命名空間   
	        String nameSpace = "http://WebXml.com.cn/";  
	        // 調用的方法名稱   
	        String methodName = "getMobileCodeInfo";  
	        // EndPoint   
	        String endPoint = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";  
	        // SOAP Action   
	        String soapAction = "http://WebXml.com.cn/getMobileCodeInfo";  
	  
	        // 指定WebService的命名空間和調用的方法名   
	        SoapObject rpc = new SoapObject(nameSpace, methodName);  
	  
	        // 設置需調用WebService接口需要傳入的兩個參數mobileCode、userId   
	        rpc.addProperty("mobileCode", phoneSec);  
	  
	        // 生成調用WebService方法的SOAP請求信息,并指定SOAP的版本   
	        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);  
	  
	        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 =null; 
	        // 獲取返回的結果   
	        if(object==null){
              result="沒有查詢到相關的區域 ";
	        }else{
	          result =object.getProperty(0).toString(); 
	        }
	        // 將WebService返回的結果顯示在TextView中   
	        resultView.setText(result);  
	    }  
	}  

  

?

Android 采用KSOAP2方式訪問WebService


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本精品久久久中文字幕 | 二级片免费看 | 久久爱噜噜噜噜久久久网 | 草草免费视频 | 国产午夜精品久久久久免费视 | 日日摸天天摸狠狠摸视频 | 亚洲精品乱码中文字幕无线 | 九九精品在线播放 | 狠狠操图片 | 国产福利在线观看视频 | 99热在线观看精品 | 国产免费久久精品44 | 日日插日日操 | 久久久久久色 | 国产精品一区在线麻豆 | 国产在线视频一区 | aaa一级黄色片 | 日干夜操 | 中文毛片 | 毛片一级在线观看 | 色婷婷综合欧美成人 | 大色佬视频在线观看 | 青青国产成人精品视频 | 国产精品h | 国产成人精品视频一区 | 天码毛片一区二区三区入口 | 26uuu欧美 | 波多野结衣二区 | 精品久久一区二区 | 成人在线免费视频播放 | 日韩欧美高清视频 | 四虎影永久在线观看精品 | 欧美精品一区在线看 | 色综合a怡红院怡红院首页 色综合h | 亚洲乱亚洲乱妇无码 | 亚洲视频在线一区二区三区 | 亚洲欧美日韩国产精品网 | 综合 欧美 国产 视频二区 | 国产 欧美 日产中文 | 亚洲伊人久久大香线蕉结合 | 欧美黄色三级视频 |