1、spring框架自带的http工具RestTemplate
1.1、post请求
public ResponseResult postForObject(String url, String params) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.add("Accept", MediaType.APPLICATION_JSON_VALUE);
//需要token的,需要在头部加上token值
headers.add("Authorization","Bearer token值");
HttpEntity<String> formEntity = new HttpEntity<>(params, headers);
ResponseEntity<String> result = restTemplate.postForEntity(url, formEntity, String.class);
return ResponseResult.setSuccess(result.getBody());
}
1.2、get请求
这里用到了RestTemplate.exchange,支持各种请求方式
public ResponseResult getForObject(String url, Map params) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.add("Accept", MediaType.APPLICATION_JSON_VALUE);
//需要token的,需要在头部加上token值
headers.add("Authorization", "Bearer token值");
HttpEntity<String> formEntity = new HttpEntity<>(headers);
//注意,get请求中,请求参数也可以选择跟在url后面
ResponseEntity<String> result = restTemplate.exchange(url, HttpMethod.GET, formEntity, String.class, params);
return ResponseResult.setSuccess(result.getBody());
}
2、简化版http 请求的工具,配置Retrofit 并使用各种请求方式
2.1、 引入maven依赖,具体版本自己决定
//由于Retrofit是基于OkHttp,所以还需要添加OkHttp库依赖
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>com.squareup.retrofit</groupId>
<artifactId>retrofit</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
2.2、创建实例
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("请求地址")
.addConverterFactory(GsonConverterFactory.create())
.client(new OkHttpClient.Builder().build())
.build();
2.3、创建具体请求接口
public interface TestApiService {
@Headers({"Content-Type: application/json", "Accept: */*"})
@GET("请求路径")
Result<String> testGet(
@Header("Authorization") String token,
@Query("参数名") String 参数值);
@Headers({"Content-Type: application/json", "Accept: */*"})
@POST("请求路径")
Result<String> testPost(
@Header("Authorization") String token,
@Body 对象参数类型 参数值);
}
2.4、Retrofit通过动态代理的方式来创建API接口的实现类,调用API
Result<String> result = retrofit.create(TestApiService.class).testGet(token,参数);