java 发送 http 请求
POM 依赖
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.6</version> </dependency>
不带参数 get 请求
public void doGet() throws ClientProtocolException, IOException { // 创建一个httpclient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建一个GET对象 HttpGet get = new HttpGet("http://localhost:8080/test/get?param=1"); // 设置请求头 get.setHeader("contentType", "application/json;charset=utf-8"); get.setHeader("Accept", "application/json;charset=utf-8"); // 执行请求 CloseableHttpResponse response = httpClient.execute(get); // 取响应的结果 int statusCode = response.getStatusLine().getStatusCode(); System.out.println(statusCode); HttpEntity entity = response.getEntity(); String string = EntityUtils.toString(entity, "utf-8"); System.out.println(string); // 关闭httpclient response.close(); httpClient.close(); }
带参数的 GET 请求
public void doGetWithParam() throws Exception { // 创建一个httpclient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建一个uri对象 URIBuilder uriBuilder = new URIBuilder("http://www.sogou.com/web"); uriBuilder.addParameter("query", "花千骨"); HttpGet get = new HttpGet(uriBuilder.build()); // 执行请求 CloseableHttpResponse response = httpClient.execute(get); // 取响应的结果 int statusCode = response.getStatusLine().getStatusCode(); System.out.println(statusCode); HttpEntity entity = response.getEntity(); String string = EntityUtils.toString(entity, "utf-8"); System.out.println(string); // 关闭httpclient response.close(); httpClient.close(); }
不带参数的 POST 请求
public void doPost() throws Exception { CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建一个post对象 HttpPost post = new HttpPost("http://localhost:8082/httpclient/post.html"); // 执行post请求 CloseableHttpResponse response = httpClient.execute(post); String string = EntityUtils.toString(response.getEntity()); System.out.println(string); response.close(); httpClient.close(); }
带参数的 POST 请求
public void doPostWithParam() throws Exception { // 创建一个post对象 HttpPost post = new HttpPost("http://localhost:8080/test/post"); // 设置请求头 post.setHeader("contentType", "application/json;charset=utf-8"); post.setHeader("Accept", "application/json;charset=utf-8"); // 发送参数 Map<String,String> map = new HashMap<String,String>(); map.put("username","zhangsan"); StringEntity s = new StringEntity(JSON.toJSONString(map)); s.setContentEncoding("UTF-8"); s.setContentType("application/json");//发送json数据需要设置contentType post.setEntity(s); // 执行post请求 CloseableHttpResponse response = httpClient.execute(post); String string = EntityUtils.toString(response.getEntity()); System.out.println(string); response.close(); httpClient.close(); }