HttpClient4.X发送带参数的Get请求

HttpClient 是apache 组织下面的一个用于处理HTTP 请求和响应的开源工具。所用jar包为httpclient-4.3.6.jar、httpcore-4.3.3.jar、httpmime-4.3.6.jar、commons-codec-1.6.jar。

发送Get请求代码如下:

  1. package com.zkn.newlearn.httpclient;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.InputStreamReader;  
  7. import java.util.List;  
  8.   
  9. import org.apache.http.Consts;  
  10. import org.apache.http.HttpEntity;  
  11. import org.apache.http.NameValuePair;  
  12. import org.apache.http.ParseException;  
  13. import org.apache.http.client.entity.UrlEncodedFormEntity;  
  14. import org.apache.http.client.methods.CloseableHttpResponse;  
  15. import org.apache.http.client.methods.HttpGet;  
  16. import org.apache.http.impl.client.CloseableHttpClient;  
  17. import org.apache.http.impl.client.HttpClients;  
  18. import org.apache.http.message.BasicNameValuePair;  
  19. import org.apache.http.util.EntityUtils;  
  20.   
  21. import com.google.common.collect.Lists;  
  22.   
  23. public class HttpClientTest02 {  
  24.   
  25.     public static void main(String[] args) {  
  26.         CloseableHttpClient httpClient = HttpClients.createDefault();  
  27.         CloseableHttpResponse response = null;  
  28.         InputStream is = null;  
  29.         String url = "http://localhost:8080/MyWebxTest/getCityByProvinceEname.do";  
  30.         //封装请求参数  
  31.         List<NameValuePair> params = Lists.newArrayList();  
  32.         params.add(new BasicNameValuePair("cityEname""henan"));  
  33.         String str = "";  
  34.         try {  
  35.             //转换为键值对  
  36.             str = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8));  
  37.             System.out.println(str);  
  38.             //创建Get请求  
  39.             HttpGet httpGet = new HttpGet(url+"?"+str);  
  40.             //执行Get请求,  
  41.             response = httpClient.execute(httpGet);  
  42.             //得到响应体  
  43.             HttpEntity entity = response.getEntity();  
  44.             if(entity != null){  
  45.                 is = entity.getContent();  
  46.                 //转换为字节输入流  
  47.                 BufferedReader br = new BufferedReader(new InputStreamReader(is, Consts.UTF_8));  
  48.                 String body = null;  
  49.                 while((body=br.readLine()) != null){  
  50.                     System.out.println(body);  
  51.                 }  
  52.             }  
  53.         } catch (ParseException e) {  
  54.             e.printStackTrace();  
  55.         } catch (IOException e) {  
  56.             e.printStackTrace();  
  57.         } finally{  
  58.             //关闭输入流,释放资源  
  59.             if(is != null){  
  60.                 try {  
  61.                     is.close();  
  62.                 } catch (IOException e) {  
  63.                     e.printStackTrace();  
  64.                 }  
  65.             }  
  66.             //消耗实体内容  
  67.             if(response != null){  
  68.                 try {  
  69.                     response.close();  
  70.                 } catch (IOException e) {  
  71.                     e.printStackTrace();  
  72.                 }  
  73.             }  
  74.             //关闭相应 丢弃http连接  
  75.             if(httpClient != null){  
  76.                 try {  
  77.                     httpClient.close();  
  78.                 } catch (IOException e) {  
  79.                     e.printStackTrace();  
  80.                 }  
  81.             }  
  82.         }  
  83.           
  84.     }  
  85. }  
package com.zkn.newlearn.httpclient;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;

import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import com.google.common.collect.Lists;

public class HttpClientTest02 {

	public static void main(String[] args) {
		CloseableHttpClient httpClient = HttpClients.createDefault();
		CloseableHttpResponse response = null;
		InputStream is = null;
		String url = "http://localhost:8080/MyWebxTest/getCityByProvinceEname.do";
		//封装请求参数
		List<NameValuePair> params = Lists.newArrayList();
		params.add(new BasicNameValuePair("cityEname", "henan"));
		String str = "";
		try {
			//转换为键值对
			str = EntityUtils.toString(new UrlEncodedFormEntity(params, Consts.UTF_8));
			System.out.println(str);
			//创建Get请求
			HttpGet httpGet = new HttpGet(url+"?"+str);
			//执行Get请求,
			response = httpClient.execute(httpGet);
			//得到响应体
			HttpEntity entity = response.getEntity();
			if(entity != null){
				is = entity.getContent();
				//转换为字节输入流
				BufferedReader br = new BufferedReader(new InputStreamReader(is, Consts.UTF_8));
				String body = null;
				while((body=br.readLine()) != null){
					System.out.println(body);
				}
			}
		} catch (ParseException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally{
			//关闭输入流,释放资源
			if(is != null){
				try {
					is.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			//消耗实体内容
			if(response != null){
				try {
					response.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			//关闭相应 丢弃http连接
			if(httpClient != null){
				try {
					httpClient.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值