Java中有关HttpClient知识

Java中有关HttpClient知识

什么是HTTP协议

以下博主写的十分清楚,认真阅读即可。在这里感谢大佬的总结(●’◡’●)

https://www.jianshu.com/p/7c8b4576e4bb

简述几条最基本使用
1.通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行,请求头部,空行和请求体4个部分构成。
2.在接收到请求之后,服务器经过解释之后,会返回个一个HTTP响应。HTTP响应是由四部分构成:状态行 响应头 空行 响应体。
在Chrome的Network中查看请求头
以下是几个比较常用到的请求头,大家可以参照引用博主的详情信息打捞基础!
Accept:可接收的响应内容类型
Accept-Charset:可接收的字符集
Accept-Encoding:可接受的响应内容的编码方式 (http协议在传输时的加密方式,如果你的相应总是莫名其妙的乱码,你要对这个地方格外注意)
Content-Type:请求体的MIME类型

具体的代码

一些java中HttpClient的知识已在代码中体现,详情可以仔细阅读代码。

/**
	 * post请求(用于key-value格式的参数)
	 * @param url 请求连接
	 * @param maps 请求数据的集合
	 * @throws Exception
	 */
	public static void postClient(String url , Map<String,String> maps) throws Exception{
   
		CloseableHttpClient  httpClient = HttpClients.createDefault();	//创建一个可以关闭的Http链接
		HttpPost post = new HttpPost(url);		//这里使用Post方式提交
		//以下是post提交的时候所包含的请求头
		post.addHeader("Authorization", "basic {"+token+"}"); //token为认证所需,对接不同接口形式不同可能不需要
		post.addHeader("Content-Type", "text/xml; charset=utf-8");
		post.addHeader("Accept","application/xml");
		
		//以下是请求时所要post提交的数据
		ArrayList<NameValuePair> resbodyValue = new ArrayList<NameValuePair>();
		for(Map.Entry<String, String> entry : maps.entrySet()){
   
			String key = entry.getKey();
			String value = entry.getValue();
			resbodyValue.add(new BasicNameValuePair(key,value));
		}
		//post提交时有许多Entity,e.g:StringEntity,BasicHttpEntity,ByteArrayEntity等
		
		post.setEntity(new UrlEncodedFormEntity(resbodyValue,"UTF-8"));	
		
		CloseableHttpResponse response = httpClient.execute(post);//发送请求
		int status = response.getStatusLine().getStatusCode(); // 获取相应状态码 
		BufferedReader in = null;  
		if(status == 200){
   	//请求成功
         	in = new
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HttpClient是Apache提供的一个Java HTTP客户端库,它提供了许多功能,可以方便地进行HTTP通信。以下是一些JavaHttpClient知识点: 1. HttpClient的版本:HttpClient4.x和HttpClient3.x是两个不同的版本,它们的API有所不同,使用前需要注意区分。 2. 创建HttpClient对象:可以通过HttpClients.createDefault()来创建默认的HttpClient对象,也可以通过HttpClientBuilder自定义HttpClient对象。 3. 创建HttpRequest对象:根据不同的HTTP方法(GET、POST、PUT、DELETE等),可以创建HttpGet、HttpPostHttpPut、HttpDelete等不同的HttpRequest对象。 4. 设置请求参数:可以设置请求的URL参数、请求头、请求体等参数。 5. 执行请求:使用HttpClient对象执行HttpRequest对象,可以得到HttpResponse对象。 6. 处理响应:HttpResponse对象包含了响应的状态码、响应头、响应体等信息,可以从获取所需的信息。 7. 连接池管理:HttpClient提供了连接池管理功能,可以提高HTTP请求的效率和性能。 8. 设置代理:可以设置HTTP代理,使请求经过代理服务器。 9. HTTPS支持:HttpClient可以支持HTTPS请求,需要配置SSLContext和HostnameVerifier等参数。 10. Cookie管理:HttpClient可以自动管理Cookie,也可以手动设置、获取、清除Cookie。 以上是JavaHttpClient的一些常见知识点,使用HttpClient可以方便地进行HTTP通信,但是在使用时也需要注意一些细节。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值