项目中经常会用到两种请求方式,简单记录使用方法。
1、Get请求
话不多说,直接上代码:
public static void getRequestMethod() {
String str = null;
CloseableHttpClient client = HttpClients.createDefault();
HttpGet httpGet = new HttpGet();
String u1 = "http://xx.xxx.xxx.xxx:xxxx/dataservice/query?pageSize=50000";
try{
httpGet.setURI(new URI(u1)); // set URL
// header 中可以追加请求参数,如用户认证信息等
httpGet.setHeader("Content-Type", "application/json");
httpGet.setHeader("Authorization", "xxxxxx");
httpGet.setHeader("user", "xxxxxx");
} catch (Exception e){
System.out.println("请求 url 格式错误。" + e.getMessage());
}
try {
CloseableHttpResponse httpResponse = client.execute(httpGet);
HttpEntity entity = httpResponse.getEntity();
byte[] bytes = EntityUtils.toByteArray(entity);
// System.out.println(entity.getContent());
StatusLine sl = httpResponse.getStatusLine();
int statusCode = sl.getStatusCode();
System.out.println("statusCode = " + statusCode);
if(statusCode == 200){
str = new String(bytes, "UTF-8");
// entity.consumeContent();
} else {
System.out.println("请求失败。" );
}
} catch (Exception e) {
System.out.println("e.getMessage() = " + e.getMessage());
}
System.out.println( "result ==> " + str);
}
2、Post请求
代码:
public static String postRequestMethod() {
String jsonString = ""; // 调用接口需要发送的内容,此处设置为空字符串
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> httpEntity = new HttpEntity<>(jsonString, headers);
// 需要调用的接口 url
return restTemplate.postForObject("http://xx.xxx.xxx.xxx:xxxx/dataservice/query1", httpEntity, String.class);
}
PS:以上post请求方法引入了spring-boot-2.3.3.RELEASE.jar, spring-core-5.2.8.RELEASE.jar, spring-web-5.2.8.RELEASE.jar三个包,否则会有报错。