Android Http请求方法汇总

本文总结了常见的HTTP请求方法,包括HttpURLConnection、URLConnection、HttpClient及Jsoup,并提供了GET和POST请求的具体实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天周日,上次在学习http网络请求的时候,在网上看到的基本上有的已经不可行,而且也多、杂,因此抽出时间来对这些请求进行一下汇总,方便自己以后调用,也分享给大家,共同进步。


通常,我们的http请求有以下几种:

1、HttpURLConnection

2、URLConnection

3、HttpClient

4、Jsoup(第三方请求架包)  架包下载地址:jsoup-1.8.3.jar


下面分别来讲下以上这些请求方法:

(GET部分)

HttpURLConnection:

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Scanner;
import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		new Thread(new Runnable() {

			@Override
			public void run() {
				HttpURLConnection urlConnection = null;
				try {
					URL url = new URL("http://www.baidu.com/");
					urlConnection = (HttpURLConnection) url.openConnection();
					InputStream in = new BufferedInputStream(
							urlConnection.getInputStream());
					Scanner scanner = new Scanner(in).useDelimiter("\\A");
					String result = scanner.hasNext() ? scanner.next() : "";

					System.out.println(result);

				} catch (MalformedURLException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				} finally {
					urlConnection.disconnect();
				}
			}
		}).start();

	}

}
运行截图:


URLConnection:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		new Thread(new Runnable() {

			@Override
			public void run() {
				String result = "";
				BufferedReader in = null;
				try {
					String urlNameString = "http://www.baidu.com";
					URL realUrl = new URL(urlNameString);
					URLConnection connection = realUrl.openConnection();
					connection.connect();
					in = new BufferedReader(new InputStreamReader(
							connection.getInputStream()));
					String line;
					while ((line = in.readLine()) != null) {
						result += line;
					}
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					try {
						if (in != null) {
							in.close();
						}
					} catch (Exception e2) {
						e2.printStackTrace();
					}
				}
				Log.e("result", result);
			}
		}).start();

	}

}
运行截图:


HttpClient:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		new Thread(new Runnable() {

			@Override
			public void run() {
				String result = null;
				BufferedReader reader = null;
				try {
					HttpClient client = new DefaultHttpClient();
					HttpGet request = new HttpGet();
					request.setURI(new URI("http://www.sina.com.cn"));
					HttpResponse response = client.execute(request);
					reader = new BufferedReader(new InputStreamReader(response
							.getEntity().getContent()));
					StringBuffer strBuffer = new StringBuffer("");
					String line = null;
					while ((line = reader.readLine()) != null) {
						strBuffer.append(line);
					}
					result = strBuffer.toString();

				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					if (reader != null) {
						try {
							reader.close();
							reader = null;
						} catch (IOException e) {
							e.printStackTrace();
						}
					}
				}
				Log.e("result", result);
			}
		}).start();

	}

}
运行截图:


Jsoup:

import java.io.IOException;
import org.jsoup.Connection;
import org.jsoup.Connection.Method;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//第一种
		new Thread(new Runnable() {

			@Override
			public void run() {
				Document document;
				try {
					document = Jsoup.connect("http://www.tuicool.com").get();
					Log.e("result", document.toString());
				} catch (IOException e) {
					e.printStackTrace();
				}

			}
		}).start();
		
		//第二种
		new Thread(new Runnable() {

			@Override
			public void run() {
				try {
					Connection.Response response = Jsoup
							.connect("http://www.oschina.net").timeout(5000)
							.method(Method.GET).execute();
					Log.e("result", response.body());
				} catch (IOException e) {
					e.printStackTrace();
				}

			}
		}).start();

	}
}
运行截图:



(POST部分)

HttpURLConnection:

<span style="color:#000099;">import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Scanner;
import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		new Thread(new Runnable() {

			@Override
			public void run() {
				HttpURLConnection urlConnection = null;
				try {
					URL url = new URL("http://www.baidu.com/");
					urlConnection = (HttpURLConnection) url.openConnection();
					</span><span style="color:#ff0000;">urlConnection.setDoInput(true);
					urlConnection.setDoOutput(true);
					urlConnection.setRequestMethod("POST");</span><span style="color:#000099;">
					InputStream in = new BufferedInputStream(
							urlConnection.getInputStream());
					Scanner scanner = new Scanner(in).useDelimiter("\\A");
					String result = scanner.hasNext() ? scanner.next() : "";

					System.out.println(result);

				} catch (MalformedURLException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				} finally {
					urlConnection.disconnect();
				}

			}
		}).start();

	}
}</span>

URLConnection:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		new Thread(new Runnable() {

			@Override
			public void run() {
				String result = "";
				BufferedReader in = null;
				PrintWriter out = null;
				try {
					String urlNameString = "http://www.baidu.com";
					URL realUrl = new URL(urlNameString);
					URLConnection connection = realUrl.openConnection();
					connection.connect();
					connection.setDoInput(true);
					connection.setDoOutput(true);
					out = new PrintWriter(connection.getOutputStream());
					out.print("");// 发送请求参数
					out.flush();
					in = new BufferedReader(new InputStreamReader(
							connection.getInputStream()));
					String line;
					while ((line = in.readLine()) != null) {
						result += "/n" + line;
					}
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					try {
						if (in != null) {
							in.close();
						}
						if (out != null) {
							out.close();
						}

					} catch (Exception e2) {
						e2.printStackTrace();
					}
				}
				Log.e("result", result);
			}
		}).start();

	}
}

HttpClient:

import java.io.IOException;
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.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.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		new Thread(new Runnable() {

			@Override
			public void run() {
				String result = "null";
				HttpPost httpPost = new HttpPost(
						"http://wthrcdn.etouch.cn/weather_mini");
				List<NameValuePair> params = new ArrayList<NameValuePair>();
				params.add(new BasicNameValuePair("citykey", "101010100"));
				try {
					HttpEntity httpEntity = new UrlEncodedFormEntity(params,
							"utf-8");
					httpPost.setEntity(httpEntity);
					HttpClient httpClient = new DefaultHttpClient();
					HttpResponse httpResponse = httpClient.execute(httpPost);
					if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
						result = EntityUtils.toString(httpResponse.getEntity());
						Log.e("result", result);
					} else {
						Log.e("result", "请求错误");
					}
				} catch (ClientProtocolException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				}
				Log.e("result", result);
			}
		}).start();

	}
}

Jsoup:

import java.io.IOException;
import org.jsoup.Connection;
import org.jsoup.Connection.Method;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 第一种
		new Thread(new Runnable() {

			@Override
			public void run() {
				Document document;
				try {
					document = Jsoup.connect("http://www.tuicool.com")
							.data(arg0).post();
					Log.e("result", document.toString());
				} catch (IOException e) {
					e.printStackTrace();
				}

			}
		}).start();

		// 第二种
		new Thread(new Runnable() {

			@Override
			public void run() {
				try {
					Connection.Response response = Jsoup
							.connect("http://www.oschina.net").timeout(5000)
							.data(arg0).method(Method.POST).execute();
					Log.e("result", response.body());
				} catch (IOException e) {
					e.printStackTrace();
				}

			}
		}).start();

	}
}

好了,基本上就是这些,如有不足之处望指正。

转载请注明出处:http://blog.youkuaiyun.com/klxh2009

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值