AndroidはKSOAP 2方式でWebServiceにアクセスします.

8582 ワード

本論文は主にKSOAP 2-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);  
	    }  
	}