【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();
//			}
//		});
	}

}
posted @ 2011-03-31 21:45  Harrison_  阅读(7421)  评论(3编辑  收藏  举报