7.19Java之HttpClient类发送GET请求方法
步骤
先创建请求携带的必要信息
GET请求是将参数拼接成字符串加上"?"带上参数去请求服务器的:
-
直接再String参数后 + "?" + params
-
先列出params然后使用指定类下的构造器将参数拼接成字符串
直接通过url传参--->这里使用的不是JDK提供的URL类,而是alibaba提供的HttpClient类
创建客户端:
//创建客户端
CloseableHttpClient httpClient = HttpClients.custom().setDefaultCookieStore(cookieStore).build();
创建Cookie存储:
//这是一个Cookie接口,里面提供了getCookie的方法
CookieStore cookieStore = new BasicCookieStore();
//BasicCookieStore是一个实现了CookieStore的类
构造发送GET请求的需要携带的参数--->包括Cookie等
//设置Cookie值
BasicClientCookie basicClientCookie = new BasicClientCookie("Cookie", cookie);
/*
BasicClientCookie类实现了众多Cookie接口,提供了构造器。返回一个Map的hash值
*/
//设置Cookie的域
basicClientCookie.setDomain("");
//设置Cookie路径
basicClientCookie.setPath("/");
//将设置好的Cookie放入接口引用中
cookieStore.addCookie(basicClientCookie);
创建响应实体接收响应内容:
//创建响应实体
CloseableHttpResponse response = null;
try {
//从响应模型中获得实体对象
HttpEntity responseEntity = response.getEntity();
//对实体对象进行判断
if (responseEntity == null){
System.out.println("响应实体对象为空!");
throw new IOException();
}else {
//打印实体状态
System.out.println("响应状态为:" + responseEntity.getContentType());
System.out.println("响应内容长度为:" + responseEntity.getContentLength());
System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));
}
}catch (Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
}finally {
//关闭资源
try {
//判断客户端实体
if (httpClient != null) {
httpClient.close();
}
//判断响应实体
if (response != null) {
response.close();
}
}catch (Exception e){
System.out.println(e.getMessage());
e.printStackTrace();
}
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
使用GET方式进行传参(直接拼接URL)
package OmsInformationInterface;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.util.EntityUtils;
import org.testng.annotations.Test;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
/**
* 调用OMS订单信息订单信息获取接口获取到订单信息
* @since JDK 1.8
* @date 2021/07/20
* @author Lucifer
*/
public class OmsOrdersGetInformation {
//定义接口Url
private static final String Url = "";
//拿到Cookie
private static final String Cookie = "";
/*Get方法*/