HTTP客户端连接请求,对接第三方接口


本篇文章主要介绍使用HttpClient和OKHttp两种方式进行HTTP请求。

1. Http请求概述

请求方法
主要使用HTTP GETPOST 方式发送请求,GET方式下请求参数需要包含在请求的URL中,POST方式下请求参数需要包含在请求的Body中。
HTTP请求中,常见的Content-Type类型:
1、application/x-www-form-urlencoded
最常见的 POST 提交数据的方式,表单默认的提交数据的格式,如果不设置 enctype 属性,默认为application/x-www-form-urlencoded 方式提交数据。提交的表单数据会转换为键值对并按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。
2、application/json
JSON数据格式,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串,其中一个好处就是JSON 格式支持比键值对复杂得多的结构化数据
3、multipart/form-data
需要在表单中进行文件上传时,就需要使用该格式。它会将表单的数据处理为一条消息,以标签为单元,用分隔符(就是boundary的作用)分开。
4、application/octet-stream
二进制流数据(如常见的文件下载)

2. HttpClient

HttpClient使用介绍
使用HttpClient发送请求主要分为以下几步骤:

  1. 创建 CloseableHttpClient对象或CloseableHttpAsyncClient对象,前者同步,后者为异步
  2. 创建Http请求对象
  3. 调用execute方法执行请求,如果是异步请求在执行之前需调用start方法

Get请求:

String url = "xxxxx";
//1.创建client、response对象
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse response = null;
//2.构造请求:使用HttpGet表示该连接为GET请求,HttpClient调用execute方法发送GET请求
HttpGet httpGet = new HttpGet(url);
//3.执行请求并接收返回数据
response = client.execute(httpGet);

Post请求:

String url = "xxxxx";
//1.创建client和response对象
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse response = null;
//2.构造请求:使用HttpPost表示该连接为POST请求,HttpClient调用execute方法发送POST请求
HttpGet httpPost= new HttpPost(url);
//设置请求头,请求体,配置
httpPost.setHeader("Content-Type", "application/json;charset=utf8");
httpPost.setHeader("Access-Token", accessToken);
httpPost.setConfig(requestConfig);
httpPost.setEntity(new StringEntity(JSONObject.toJSONString(userVO), "UTF-8"));
//3.执行请求并接收返回数据
response = client.execute(httpPost);

通过POST上传文件:(Content-Type = multipart/form-data)

String url = "xxxxx";
String fileUrl = "xxxxx";
//1.创建client、response对象、httpPost请求对象
CloseableHttpClient client = HttpClientBuilder.create().build();
CloseableHttpResponse response = null;
HttpPost httpPost = new HttpPost(url);
//获取文件(文件在本地)
FileBody fileBody = new FileBody
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值