HttpClient发送请求,get和post两种方式,分别带参数和不带参数

(一)、导入HttpCLient的jar包

  <dependencies>
	  	<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>4.5.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
			<version>4.4.6</version>
		</dependency>
  </dependencies>

(二)代码实现

1、httpCLient发送get请求(带参数直接在ulr后跟参数即可)

	public void HttpClientGet() throws Exception {
		// 获取http客户端
		CloseableHttpClient client = HttpClients.createDefault();
		// 通过httpget方式来实现我们的get请求
		HttpGet httpGet = new HttpGet("http://www.itcast.cn?username=zhangsan&password=lisi");
		// 通过client调用execute方法,得到我们的执行结果就是一个response,所有的数据都封装在response里面了
		CloseableHttpResponse Response = client.execute(httpGet);
		// HttpEntity
		// 是一个中间的桥梁,在httpClient里面,是连接我们的请求与响应的一个中间桥梁,所有的请求参数都是通过HttpEntity携带过去的
		// 所有的响应的数据,也全部都是封装在HttpEntity里面
		HttpEntity entity = Response.getEntity();
		// 通过EntityUtils 来将我们的数据转换成字符串
		String str = EntityUtils.toString(entity, "UTF-8");
		// EntityUtils.toString(entity)
		System.out.println(str);
		// 关闭
		Response.close();
	}

2、httpCLient发送post请求(带参数见其中代码)

	public void HttpClientPost() throws Exception {
		// 获取默认的请求客户端
		CloseableHttpClient client = HttpClients.createDefault();
		// 通过HttpPost来发送post请求
		HttpPost httpPost = new HttpPost("http://www.itcast.cn");
		/*
		 * post带参数开始
		 */
		// 第三步:构造list集合,往里面丢数据
		List<NameValuePair> list = new ArrayList<NameValuePair>();
		BasicNameValuePair basicNameValuePair = new BasicNameValuePair("username", "zhangsan");
		BasicNameValuePair basicNameValuePair2 = new BasicNameValuePair("password", "123456");
		list.add(basicNameValuePair);
		list.add(basicNameValuePair2);
		// 第二步:我们发现Entity是一个接口,所以只能找实现类,发现实现类又需要一个集合,集合的泛型是NameValuePair类型
		UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(list);
		// 第一步:通过setEntity 将我们的entity对象传递过去
		httpPost.setEntity(formEntity);
		/*
		 * post带参数结束
		 */
		// HttpEntity
		// 是一个中间的桥梁,在httpClient里面,是连接我们的请求与响应的一个中间桥梁,所有的请求参数都是通过HttpEntity携带过去的
		// 通过client来执行请求,获取一个响应结果
		CloseableHttpResponse response = client.execute(httpPost);
		HttpEntity entity = response.getEntity();
		String str = EntityUtils.toString(entity, "UTF-8");
		System.out.println(str);
		// 关闭
		response.close();
	}

在使用HttpClient发送POST请求时,可以通过不同的方式参数。一种方式是将参数拼接到请求路径中,类似于"http:localhost/upload?key=value"的方式。可以使用NameValuePair和UrlEncodedFormEntity来实现。首先,创建一个List<NameValuePair>对象,将参数名和参数值添加到该对象中。然后,创建一个HttpPost对象,设置请求路径,并将参数列表和编码方式传递给UrlEncodedFormEntity对象,最后将UrlEncodedFormEntity对象设置为HttpPost的实体。示例代码如下所示:\[1\] 另一种方式是通过请求体携参数提交。可以直接创建一个HttpPost对象,设置请求路径,然后执行HttpPost请求。示例代码如下所示:\[2\] 还有一种方式是通过URIBuilder来构建参数请求路径,然后创建一个HttpPost对象,将构建好的URI传递给HttpPost对象。示例代码如下所示:\[3\] 以上是三种常见的使用HttpClient发送POST请求参数方式。根据具体的需求和场景,选择适合的方式发送POST请求参数。 #### 引用[.reference_title] - *1* *3* [java关于httpclient通过Post请求请求参数的说明](https://blog.csdn.net/daxues_/article/details/120670737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Java使用HttpClient发送GET和POST参数请求](https://blog.csdn.net/YOU_hunter/article/details/102655511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值