声明:实习时接到一个送餐机器人项目 涉及到httpclient
1.创建请求对象:post或者get
HttpPost httpPost = new HttpPost(url);
2. 创建httpclient对象
CloseableHttpClient httpclient = HttpClientBuilder.create().build();
3. 创建请求头对象
BasicResponseHandler handler = new BasicResponseHandler();
4. 设置请求格式
StringEntity entity = new StringEntity(jsonData, "utf-8");//解决中文乱码问题
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
5.执行post请求
result = httpClient.execute(httpPost, handler);
6.释放连接
httpClient.close();
Demo
public static String httpClientPost(String url,String jsonData) {
String result = "";
//创建post方式请求对象
HttpPost httpPost = new HttpPost(url);
//创建httpclient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
BasicResponseHandler handler = new BasicResponseHandler();
//设置请求格式
StringEntity entity = new StringEntity(jsonData, "utf-8");//解决中文乱码问题
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
//执行POST请求
result = httpClient.execute(httpPost, handler);
return result;
} catch (Exception e) {
} finally {
//释放连接
try {
httpClient.close();
} catch (Exception e) {
}
}
return result;
}
具体
public static Map sendPostJson(String url, String postdataJson) throws JsonProcessingException, UnsupportedEncodingException {
HttpPost httpPost = new HttpPost(url);
ObjectMapper objectMapper = new ObjectMapper();
if(postdataJson != null) {
StringEntity entity = new StringEntity(postdataJson, StandardCharsets.UTF_8);
httpPost.setEntity(entity);
}
httpPost.setHeader("Content-type", "application/json"); // 设置内容类型为JSON
httpPost.setHeader("appId", AppUtils.ROBOT_APP_ID);
httpPost.setHeader("secret", AppUtils.ROBOT_APP_SECRET);
try (CloseableHttpClient client = HttpClients.createDefault()) {
try (CloseableHttpResponse response = client.execute(httpPost)) {
int status = response.getStatusLine().getStatusCode();
System.out.println("Status: " + status);
HttpEntity responseEntity = response.getEntity();
if (responseEntity != null) {
String responseString = EntityUtils.toString(responseEntity);
System.out.println("Response: " + responseString);
//转换map
Map resultMap = objectMapper.readValue(responseString, Map.class);
System.out.println(resultMap);
return resultMap;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}