Http(get,post)及HttpClient(get,post)的简单使用

 

  

 

1. 使用 Http 的 Get 方式读取网络数据

  

 1 import java.io.BufferedReader;
 2 import java.io.IOException;
 3 import java.io.InputStream;
 4 import java.io.InputStreamReader;
 5 import java.net.MalformedURLException;
 6 import java.net.URL;
 7 import java.net.URLConnection;
 8 
 9 public class TestHttpGet {
10 
11     public static void main(String[] args) {
12         new ReadByGet().start();
13     }
14     static class ReadByGet extends Thread{
15         @Override
16         public void run() {
17             try {
18                 URL url = new URL("http://fanyi.youdao.com/openapi.do?keyfrom=jkxyuvi&key=1530995034&type=data&doctype=xml&version=1.1&q=welcom");
19                 URLConnection connection = url.openConnection();
20                 InputStream is = connection.getInputStream();
21                 InputStreamReader isr = new InputStreamReader(is);
22                 BufferedReader br = new BufferedReader(isr);
23                 
24                 String line;
25                 StringBuilder builder = new StringBuilder();
26                 
27                 while((line = br.readLine())!=null){
28                     builder.append(line);
29                     
30                 }
31                 br.close();
32                 isr.close();
33                 is.close();
34                 
35                 System.out.println(builder.toString());
36                 
37             } catch (MalformedURLException e) {
38                 
39                 e.printStackTrace();
40             } catch (IOException e) {
41                 e.printStackTrace();
42             }
43         }
44     }
45 
46 }

 

2. 使用 Http 的 Post 方式与网络交互通信

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.io.InputStreamReader;
 6 import java.io.OutputStream;
 7 import java.io.OutputStreamWriter;
 8 import java.net.HttpURLConnection;
 9 import java.net.MalformedURLException;
10 import java.net.URL;
11 
12 public class TestHttpPost {
13 
14     public static void main(String[] args) {
15         new ReadByPost().start();
16     }
17 
18 }
19 class ReadByPost extends Thread{
20     @Override
21     public void run() {
22         try {
23             URL url = new URL("http://fanyi.youdao.com/openapi.do");
24             HttpURLConnection connection = (HttpURLConnection) url.openConnection();
25             connection.addRequestProperty("encoding", "UTF-8");
26             connection.setDoInput(true);
27             connection.setDoOutput(true);
28             connection.setRequestMethod("POST");
29             
30             
31             
32             OutputStream os = connection.getOutputStream();
33             OutputStreamWriter osw = new OutputStreamWriter(os);
34             BufferedWriter bw = new BufferedWriter(osw);
35             
36             
37             
38             bw.write("keyfrom=jkxyuvi&key=1530995034&type=data&doctype=xml&version=1.1&q=welcome");
39             bw.flush();//强制输出
40             
41             InputStream is = connection.getInputStream();
42             InputStreamReader isr = new InputStreamReader(is);
43             BufferedReader br = new BufferedReader(isr);
44             String line;
45             StringBuilder builder = new StringBuilder();
46             while((line = br.readLine())!=null){
47                 builder.append(line);
48             }
49             
50             bw.close();
51             osw.close();
52             os.close();
53             br.close();
54             isr.close();
55             is.close();
56             System.out.println(builder.toString());
57             
58         } catch (MalformedURLException e) {
59             // TODO Auto-generated catch block
60             e.printStackTrace();
61         } catch (IOException e) {
62             // TODO Auto-generated catch block
63             e.printStackTrace();
64         }
65     }
66 }

 

3. 使用HttpClient进行Get方式通信

先下载HttpClient相关依赖包,地址: http://hc.apache.org/downloads.cgi

 1 import java.io.IOException;
 2 
 3 import org.apache.http.HttpEntity;
 4 import org.apache.http.HttpResponse;
 5 import org.apache.http.client.ClientProtocolException;
 6 import org.apache.http.client.HttpClient;
 7 import org.apache.http.client.methods.HttpGet;
 8 import org.apache.http.impl.client.HttpClients;
 9 import org.apache.http.util.EntityUtils;
10 
11 public class TestHttpClientGet {
12 
13     public static void main(String[] args) {
14         new Get().start();
15     }
16 
17 }
18 class Get extends Thread{
19     
20     HttpClient client = HttpClients.createDefault();
21     
22     
23     @Override
24     public void run() {
25         
26         HttpGet get = new HttpGet("http://www.bai.com");
27         try {
28             HttpResponse response = client.execute(get);
29             HttpEntity entity = response.getEntity();
30             String result  =  EntityUtils.toString(entity,"UTF-8");
31             System.out.println(result);
32         } catch (ClientProtocolException e) {
33             e.printStackTrace();
34         } catch (IOException e) {
35             e.printStackTrace();
36         }
37         
38     }
39 }

 

4. 使用 HttpClient 进行 Post 方式通信

 1 import java.io.IOException;
 2 import java.util.ArrayList;
 3 import java.util.List;
 4 
 5 import org.apache.http.HttpEntity;
 6 import org.apache.http.HttpResponse;
 7 import org.apache.http.client.ClientProtocolException;
 8 import org.apache.http.client.HttpClient;
 9 import org.apache.http.client.entity.UrlEncodedFormEntity;
10 import org.apache.http.client.methods.HttpPost;
11 import org.apache.http.impl.client.HttpClients;
12 import org.apache.http.message.BasicNameValuePair;
13 import org.apache.http.util.EntityUtils;
14 
15 public class TestHttpClientPost {
16 
17     public static void main(String[] args) {
18         new Post().start();
19     }
20 
21 }
22 class Post extends Thread{
23     
24     HttpClient client = HttpClients.createDefault();
25     
26     @Override
27     public void run() {
28         HttpPost post = new HttpPost("http://fanyi.youdao.com/openapi.do");
29         
30         try {
31             List<BasicNameValuePair> parameters = new ArrayList<>();
32             parameters.add(new BasicNameValuePair("keyfrom", "jkxyuvi"));
33             parameters.add(new BasicNameValuePair("key", "1530995034"));
34             parameters.add(new BasicNameValuePair("type", "data"));
35             parameters.add(new BasicNameValuePair("doctype", "xml"));
36             parameters.add(new BasicNameValuePair("version", "1.1"));
37             parameters.add(new BasicNameValuePair("q", "welcome"));
38             post.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8"));
39             
40             HttpResponse response = client.execute(post);
41             HttpEntity entity = response.getEntity();
42             String result = EntityUtils.toString(entity,"UTF-8");
43             System.out.println(result);
44             
45         } catch (ClientProtocolException e) {            
46             e.printStackTrace();
47         } catch (IOException e) {
48             e.printStackTrace();
49         }
50         
51          
52         
53     }
54 }

 

与java自带的http通信,HttpClient用起来确实方便的多。

posted @ 2016-08-01 12:24  UniqueColor  阅读(312)  评论(0编辑  收藏  举报