HttpClient4.X发送带参数的Get请求「建议收藏」

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请求代码如下:packagecom.zkn.newlearn.httpclient;importjava.

大家好,又见面了,我是你们的朋友全栈君。

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请求代码如下:

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();
				}
			}
		}
		
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163276.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • HttpServlet 实现 MySQL 数据库的插入操作

    HttpServlet 实现 MySQL 数据库的插入操作HttpServlet实现MySQL数据库的插入操作MySQL数据库及表的创建过程,请参考前文《MySQL数据库及数据表的创建》。本文重点来分步进行HttpServlet中,MySQL数据库的插入操作实现。实现步骤1.准备数据库的地址、用户名和密码publicstaticfinalStringurl=”jdbc:mysql://localhost:3306/budaye_test01″;publicstaticfinalStringname=”root

    2022年10月29日
  • Windows Azure服务购买,收费,使用注意事项及学习资料推荐

    Windows Azure服务购买,收费,使用注意事项及学习资料推荐近来,QQ群里不少朋友比较关注WindowsAzure,然而又仿佛不知道怎么入手。怎么开始开发,部署这些是技术细节,相信难不倒大家,但是如何购买服务以及收费这些东西确实模模糊糊的。这一方面是因为中文资料太少,WindowsAzure的入口网站也比较模糊,很多人找不到,更重要的是微软还没有正式对大陆开放。据说,曾经微软准备在大陆建一个数据中心,由于某些原因最后选择…

  • Proxy实现mysql读写分离

    1.mysql实现读写分离的方式mysql实现读写分离的方式有以下几种:程序修改mysql操作,直接和数据库通信,简单快捷的读写分离和随机的方式实现的负载均衡,权限独立分配,需要开发人员协助。amoeba,直接实现读写分离和负载均衡,不用修改代码,有很灵活的数据解决方案,自己分配账户,和后端数据库权限管理独立,权限处理不够灵活。mysql-proxy,直接实现读写分离和负载均衡,不用…

  • 四级英语词汇大全(英语四级词汇表完整版)

    aart.一(个);每一(个)a.m(缩)上午,午前abandonvt.丢弃;放弃,抛弃abbreviationn.节略,缩写,缩短abilityn.能力;能耐,本领ablea.有能力的;出色的abnormala.不正常的;变态的aboardad.在船(车)上;上船abolishvt.废除,取消aboutprep.关于;在…周围aboveprep.在…上面;高于abroadad.(在)国外;到处absencen.缺席,不在场;缺乏absenta.不在场的

  • 交互式脚本_交互式和脚本式的区别

    交互式脚本_交互式和脚本式的区别带你打开脚本的大门,领略语言之美

  • 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别

    秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beginthreadex到底有什么区别,在实际的编程中到底应该使用CreateThread还是_beginthreadex?   使用多线程其实是非常容易的,下面这个程序的主线程会创建了一个子线程并等待

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号