Android Http请求方法汇总

来源:互联网 发布:视频赚钱软件 编辑:程序博客网 时间:2024/06/05 08:34

今天周日,上次在学习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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new Thread(new Runnable() {@Overridepublic 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new Thread(new Runnable() {@Overridepublic 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new Thread(new Runnable() {@Overridepublic 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//第一种new Thread(new Runnable() {@Overridepublic 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() {@Overridepublic 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new Thread(new Runnable() {@Overridepublic 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new Thread(new Runnable() {@Overridepublic 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);new Thread(new Runnable() {@Overridepublic 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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 第一种new Thread(new Runnable() {@Overridepublic 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() {@Overridepublic 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

0 0
原创粉丝点击