【android】HttpURLConnection 几种不同方法示例【下】

上篇和中篇介绍了通过标准java接口来实现Android应用的联网操作,但都只是简单地进行了网络的访问,但是在实际开发中,可能会运用到更复杂的联网操作。Apache提供了HttpClient, 它对java.net中的类做了封装和抽象,更适合我们在Android上开发联网应用。

下面将分别使用Get和Post方式请求一个网页:

      我们先来看看HttpClient中如何使用Get方式获取数据,这里需要使用HttpGet来构建一个Get方式的Http请求,然后通过HttpClient来执行这个请求,HttpResponse在接收这个请求后给出响应,最后通过"HttpResponse.getStatusLine().getStatusCode()"来判断请求是否成功,并处理。具体实现如下:

  • HttpClient接口中用Get方式传递参数
package HA.httpurl;



import java.io.IOException;



import org.apache.http.HttpResponse;

import org.apache.http.HttpStatus;

import org.apache.http.ParseException;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.util.EntityUtils;



import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.*;



//HttpClient接口中用Get方式传递参数

public class HttpClientGet extends Activity{



	@Override

	protected void onCreate(Bundle savedInstanceState) {

		// TODO Auto-generated method stub

		super.onCreate(savedInstanceState);

//		setContentView(R.layout.http);

		TextView mTextView = new TextView(this);

		ScrollView scrollView = new ScrollView(this);

		String httpUrl = "http://www.xiaonei.com";

		

		HttpGet httpRequest = new HttpGet(httpUrl);

		try {

			HttpClient httpclient = new DefaultHttpClient();

			HttpResponse httpResponse = httpclient.execute(httpRequest);

			if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

				String strResult = EntityUtils.toString(httpResponse.getEntity());

				mTextView.setText(strResult);

				scrollView.addView(mTextView);

				this.setContentView(scrollView);

			} else {

				mTextView.setText("请求错误");

			}

		} catch (ClientProtocolException e) {

			// TODO Auto-generated catch block

			mTextView.setText(e.getMessage().toString());

		} catch (ParseException e) {

			// TODO Auto-generated catch block

			mTextView.setText(e.getMessage().toString());

		} catch (IOException e) {

			// TODO Auto-generated catch block

			mTextView.setText(e.getMessage().toString());

		}

		

//		Button button_back = (Button)this.findViewById(R.id.Button_Back);

//		button_back.setOnClickListener(new OnClickListener(){

//

//			public void onClick(View v) {

//				// TODO Auto-generated method stub

//				Intent intent = new Intent();

//				intent.setClass(HttpClientGet.this, Activity01.class);

//				startActivity(intent);

//				HttpClientGet.this.finish();

//			}

//		});

	}

}
  • HttpClient接口中用Post方式传递参数
package HA.httpurl;



import java.io.IOException;

import java.io.UnsupportedEncodingException;

import java.util.ArrayList;

import java.util.List;



import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.HttpStatus;

import org.apache.http.NameValuePair;

import org.apache.http.ParseException;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;



import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.*;



//HttpClient接口中用Post方式传递参数

public class HttpClientPost extends Activity{



	@Override

	protected void onCreate(Bundle savedInstanceState) {

		// TODO Auto-generated method stub

		super.onCreate(savedInstanceState);

//		setContentView(R.layout.http);

		

		TextView mTextView = new TextView(this);

		ScrollView scrollView = new ScrollView(this);

		String httpUrl = "http://3g.renren.com/login.do";

		HttpPost httpRequest = new HttpPost(httpUrl);

		List<NameValuePair> params = new ArrayList<NameValuePair>();

		params.add(new BasicNameValuePair("email","******"));

		params.add(new BasicNameValuePair("&password","*******"));

		try {

			HttpEntity httpentity = new UrlEncodedFormEntity(params, "UTF-8");

			httpRequest.setEntity(httpentity);



			HttpClient httpclient = new DefaultHttpClient();

			HttpResponse httpResponse = httpclient.execute(httpRequest);

			if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

				String strResult = EntityUtils.toString(httpResponse.getEntity());

				mTextView.setText(strResult);

				scrollView.addView(mTextView);

				this.setContentView(scrollView);

			} else {

				mTextView.setText("请求错误!");

			}

		} catch (UnsupportedEncodingException e) {

			// TODO Auto-generated catch block

			mTextView.setText(e.getMessage().toString());

		} catch (ClientProtocolException e) {

			// TODO Auto-generated catch block

			mTextView.setText(e.getMessage().toString());

		} catch (ParseException e) {

			// TODO Auto-generated catch block

			mTextView.setText(e.getMessage().toString());

		} catch (IOException e) {

			// TODO Auto-generated catch block

			mTextView.setText(e.getMessage().toString());

		}

//		

//		Button button_back = (Button)this.findViewById(R.id.Button_Back);

//		button_back.setOnClickListener(new OnClickListener(){

//

//			public void onClick(View v) {

//				// TODO Auto-generated method stub

//				Intent intent = new Intent();

//				intent.setClass(HttpClientPost.this,Activity01.class);

//				startActivity(intent);

//				HttpClientPost.this.finish();

//			}

//		});

	}



}

你可能感兴趣的:(【android】HttpURLConnection 几种不同方法示例【下】)