今天周日,上次在学习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.csdn.NET/klxh2009