post請求的寫法,帶請求頭和請求體:
代碼:
1 import org.apache.http.HttpEntity; 2 import org.apache.http.ParseException; 3 import org.apache.http.client.ClientProtocolException; 4 import org.apache.http.client.methods.CloseableHttpResponse; 5 import org.apache.http.client.methods.HttpPost; 6 import org.apache.http.entity.StringEntity; 7 import org.apache.http.impl.client.CloseableHttpClient; 8 import org.apache.http.impl.client.HttpClients; 9 import org.apache.http.util.EntityUtils; 10 import org.springframework.stereotype.Component; 11 12 import java.io.IOException; 13 import java.util.Map; 14 15 @Component 16 public class HttpRequestPostServiceImpl implements HttpRequestPostService { 17 CloseableHttpClient httpClient = HttpClients.createDefault(); 18 19 @Override 20 public String doPostHttpRequest(String url, Map<String, String> headerMap, String requestBody) { 21 String entityStr = null; 22 CloseableHttpResponse response = null; 23 try { 24 HttpPost post = new HttpPost(url); 25 //添加頭部信息 26 for (Map.Entry<String, String> header : headerMap.entrySet()) { 27 post.addHeader(header.getKey(), header.getValue()); 28 } 29 HttpEntity entity = new StringEntity(requestBody, "Utf-8"); 30 System.out.println("請求體是:" + requestBody); 31 post.setEntity(entity); 32 response = httpClient.execute(post); 33 // 獲得響應的實體對象 34 HttpEntity httpEntity = response.getEntity(); 35 // 使用Apache提供的工具類進行轉換成字符串 36 entityStr = EntityUtils.toString(httpEntity, "UTF-8"); 37 System.out.println("POST請求路徑:" + post); 38 System.out.println("POST請求結果:" + entityStr); 39 } catch (ClientProtocolException e) { 40 System.err.println("Http協議出現問題"); 41 e.printStackTrace(); 42 } catch (ParseException e) { 43 System.err.println("解析錯誤"); 44 e.printStackTrace(); 45 } catch (IOException e) { 46 System.err.println("IO異常"); 47 e.printStackTrace(); 48 } 49 return entityStr; 50 } 51 }