参考:http://hc.apache.org/httpclient-3.x/tutorial.html
importorg.apache.http.HttpEntity; importorg.apache.http.client.methods.CloseableHttpResponse; importorg.apache.http.client.methods.HttpPost; importorg.apache.http.entity.StringEntity; importorg.apache.http.impl.client.CloseableHttpClient; importorg.apache.http.impl.client.HttpClients; importorg.apache.http.protocol.HTTP; importorg.apache.poi.util.IOUtils; importorg.springframework.beans.factory.annotation.Value; importorg.springframework.stereotype.Component; importjava.io.DataOutputStream; importjava.io.IOException; importjava.net.HttpURLConnection; importjava.net.URL; @Component public classHttpClientUtil { private static CloseableHttpClient httpClient =HttpClients.createDefault(); private staticString ADDRESS; public staticString getAuthorization() { String url = "http://" + ADDRESS + "/login"; String data = "{"username": "username","password": "password"}"; HttpURLConnection connection=null; try{ URL server = newURL(url); connection =(HttpURLConnection)server.openConnection(); connection.setRequestMethod("POST"); connection.addRequestProperty("Content-Type","application/json;charset=utf-8"); connection.setUseCaches (false); connection.setDoInput(true); connection.setDoOutput(true); connection.setConnectTimeout(5*1000); connection.setReadTimeout(10*1000); DataOutputStream wr = newDataOutputStream(connection.getOutputStream()); wr.write(data.toString().getBytes("UTF-8")); wr.flush (); wr.close (); String Authorization =connection.getHeaderField("Authorization"); returnAuthorization; } catch(Exception e){ e.printStackTrace(); } finally{ if(connection != null){ connection.disconnect(); } } return null; } public staticString post(String url, String body) { String auth =getAuthorization(); if (auth == null) { return null; } HttpPost httpPost = new HttpPost("http://" + ADDRESS +url); httpPost.setHeader(HTTP.CONTENT_TYPE, "application/json;charset=UTF-8"); httpPost.setHeader("Accept", "application/json;charset=UTF-8"); httpPost.setHeader("Authorization", auth); CloseableHttpResponse response2 = null; try{ StringEntity entity = new StringEntity(body, "utf-8"); System.out.println("request = " +body); httpPost.setEntity(entity); response2 =httpClient.execute(httpPost); System.out.println(response2.getStatusLine()); HttpEntity entity2 =response2.getEntity(); String responseStr = newString(IOUtils.toByteArray(entity2.getContent())); System.out.println("response = " +responseStr); returnresponseStr; } catch(Exception e) { e.printStackTrace(); return null; } finally{ if (response2 != null) { try{ response2.close(); } catch(IOException e) { e.printStackTrace(); } } } } @Value("${interface.address}") public voidsetAddress(String address) { ADDRESS =address; } }