AndroidはKSOAP 2方式でWebServiceにアクセスします.
8582 ワード
本論文は主にKSOAP 2-Androidの方式でWebServiceにアクセスする.
WebServiceを使用する住所:
http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx
以下のとおりです
WebServiceを使用する住所:
http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx
以下のとおりです
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);
}
}