直接上代码吧 ~
/**
* 网络请求接口的工具类
* @param url 请求的url
* @param token token令牌(没有的话就去掉)
* @param bodyJson 入参JOSN
*/
public static void send(String url, String token, String bodyJson) {
try {
CloseableHttpClient httpClient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(300 * 1000)
.setConnectTimeout(300 * 1000)
.build();
HttpPost post = new HttpPost(url);
post.setConfig(requestConfig);
post.setHeader("Content-Type", "application/json;charset=utf-8");
post.addHeader("x-access-token", token);
StringEntity postingString = new StringEntity(bodyJson, "utf-8");
post.setEntity(postingString);
HttpResponse response = httpClient.execute(post);
String resultJson = EntityUtils.toString(response.getEntity());
System.out.println("请求成功 success -> 原始数据 : " + resultJson);
//TODO 解析json中的 code msg data
String code = "";
if ("0".equals(code)) {
//TODO 请求成功处理
} else if ("2000".equals(code)) {
//TODO token过期处理
} else {
//TODO 接口返回失败处理
}
} catch (SocketTimeoutException e) {
//TODO 请求超时处理
System.out.println("请求过程中发生错误。错误信息如下 : " + e.toString());
} catch (Exception e) {
//TODO 网络请求错误处理
System.out.println("请求过程中发生错误。错误信息如下 : " + e.toString());
}
}
如果有特别权限限制的接口,也没有正规给出访问令牌,可以用该网站浏览器的Cookie模拟一下,很简单:
格式:url?Cookie=XXXX我是Cookie值XXX&JSON入参