Farzad Sarseifi

ارسال اطلاعات برای وب سرویس

1 ارسال در این موضوع قرار دارد

در این آموزش طریقه ارسال اطلاعات به یک وب سرویس را بررسی میکنیم.

در این آموزش قصد داریم اطلاعات 4 فیلد که داده های 4 کادر ورودی میباشند را ارسال میکنیم

نکات لازم : حتما آدرس و پورت طرف سرور را درست وارد نماییم و پرو تکل را هم معمولا http هست را بنویسیم.

فایل xml :

[align=left]

<?xml version="1.0" encoding="UTF-8"?>  android:layout_width="330dp"   android:layout_height="450dip"    android:fillViewport="true" >       android:layout_width="fill_parent"       android:layout_height="wrap_content"       android:background="#ffffff" >           android:id="@+id/footer"           android:layout_width="fill_parent"           android:layout_height="90dip"           android:layout_alignParentBottom="true"           android:background="@layout/footer_repeat" >       android:id="@+id/header"       android:layout_width="fill_parent"       android:layout_height="wrap_content"       android:background="@layout/header_gradient"       android:paddingBottom="5dip"       android:paddingTop="5dip" >           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_marginLeft="10dip"           android:src="@drawable/logo" />       xmlns:android="http://schemas.android.com/apk/res/android"       android:layout_width="match_parent"       android:layout_height="wrap_content"       android:layout_below="@id/header"       android:orientation="vertical"       android:padding="10dip" >           android:id="@+id/textView1"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:text="Title : " />           android:id="@+id/txt_title"           android:layout_width="fill_parent"           android:layout_height="wrap_content"           android:inputType="textPostalAddress"           android:lines="8" />           android:id="@+id/textView4"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:text="Content Ticker : " />           android:id="@+id/txt_content"           android:layout_width="fill_parent"           android:layout_height="wrap_content"           android:inputType="textPostalAddress"           android:lines="8" />           android:id="@+id/textView2"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_marginTop="17dp"           android:text="Start Date:" />           android:id="@+id/txt_sDate"           android:layout_width="fill_parent"           android:layout_height="wrap_content"           android:inputType="textPostalAddress"           android:lines="8" />           android:id="@+id/textView3"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:layout_marginTop="17dp"           android:text="Time : " />           android:id="@+id/txt_eDate"           android:layout_width="fill_parent"           android:layout_height="wrap_content"           android:inputType="datetime"           android:lines="8" />               android:layout_width="fill_parent"               android:layout_height="wrap_content"               android:stretchColumns="*" >           android:id="@+id/btn_send"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:text="Send to Server" />           android:id="@+id/btn_exitting"           android:layout_width="wrap_content"           android:layout_height="wrap_content"           android:text="    Back    " />

[/align]

خب به اکتیویتی خود میرویم و اطلاعات را در کادرها وارد و سپس دکمه ارسال را میزنیم.

[align=left]

public class Ticker extends Activity {EditText _txt_title, _txt_content, _txt_sDate, _txt_eDate;Button btn_send, btn_exit;@Overrideprotected void onCreate(Bundle savedInstanceState) {	// TODO Auto-generated method stub	super.onCreate(savedInstanceState);	setContentView(R.layout.tickers);	_txt_title = (EditText) findViewById(R.id.txt_title);	_txt_content = (EditText) findViewById(R.id.txt_content);	_txt_sDate = (EditText) findViewById(R.id.txt_sDate);	_txt_eDate = (EditText) findViewById(R.id.txt_eDate);	btn_exit = (Button) findViewById(R.id.btn_exitting);	btn_exit.setOnClickListener(new View.OnClickListener() {		@Override		public void onClick(View v) {			// TODO Auto-generated method stub			finish();		}	});	btn_send = (Button) findViewById(R.id.btn_send);	btn_send.setOnClickListener(new View.OnClickListener() {		@Override		public void onClick(View v) {			// TODO Auto-generated method stub			// sendData();			post();		}	});}private void post() {	DefaultHttpClient hc = new DefaultHttpClient();	ResponseHandler res = new BasicResponseHandler();	HttpPost httpPost = new HttpPost("http://192.168.120.122:4455");	List nameValuePairs = new ArrayList(4);	nameValuePairs.add(new BasicNameValuePair("StartDate", _txt_sDate			.getText().toString()));	nameValuePairs.add(new BasicNameValuePair("EndDate", _txt_eDate			.getText().toString()));	nameValuePairs.add(new BasicNameValuePair("Title", _txt_title.getText()			.toString()));	nameValuePairs.add(new BasicNameValuePair("ContentTicker", _txt_content			.getText().toString()));	try {		httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));	} catch (UnsupportedEncodingException e) {		// TODO Auto-generated catch block		e.printStackTrace();	}	try {		String response = hc.execute(httpPost, res);		Toast.makeText(getApplicationContext(), "Send Ticker",				Toast.LENGTH_LONG).show();	} catch (ClientProtocolException e) {		// TODO Auto-generated catch block		e.printStackTrace();	} catch (IOException e) {		// TODO Auto-generated catch block		e.printStackTrace();	}}}

[/align]

کدهای تقریبا واضحه :

HttpPost httpPost = new HttpPost("http://192.168.10.143:3555");

آدرس وب سرویس مقصد را مینویسیم.در این مثال ادرس شبکه داخلی را وارد کرده ایم و پورت مورد نظر

[align=left]

List nameValuePairs = new ArrayList(4);	nameValuePairs.add(new BasicNameValuePair("StartDate", _txt_sDate			.getText().toString()));	nameValuePairs.add(new BasicNameValuePair("EndDate", _txt_eDate			.getText().toString()));	nameValuePairs.add(new BasicNameValuePair("Title", _txt_title.getText()			.toString()));	nameValuePairs.add(new BasicNameValuePair("ContentTicker", _txt_content			.getText().toString()));

[/align]

مقادیر وارد شده را ذخیره میکنیم و آماده ارسال هستیم

httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

برای انکود کردن داده های ارسالی.

String response = hc.execute(httpPost, res);

اجرای درخواست

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
مهمان
این موضوع برای عدم ارسال قفل گردیده است.