spring-boot调用外部接口-httpClient
(1)使用POST方式访问HTTP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | package com.example.httpclient.httpClientDemo; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; public class HttpPostDemo { public static void main(String[] args) throws JSONException { // 1. 创建HttpClient对象 CloseableHttpClient httpClient = HttpClientBuilder.create().build(); // 2. 创建HttpPost对象 HttpPost post = new HttpPost( "https:12345/v1" ); // 3. 设置POST请求传递参数 post.setEntity JSONObject jsonObject = new JSONObject(); jsonObject.put( "a" , "aaa" ); jsonObject.put( "token" , "222" ); HashMap<String, Object> data = new HashMap<>(); data.put( "ccc" , "ccc" ); data.put( "version" , "1.0" ); ArrayList<String> ids = new ArrayList<>(); ids.add( "6666" ); data.put( "ids" , ids); jsonObject.put( "data" , data); post.setEntity( new StringEntity(jsonObject.toString(), HTTP.UTF_8)); // 这里这只字符格式,可以防止中文乱码 // 4. 执行请求并处理响应 try { CloseableHttpResponse response = httpClient.execute(post); HttpEntity entity = response.getEntity(); if (entity != null ) { System. out .println( "响应内容:" ); System. out .println(EntityUtils.toString(entity)); } response.close(); } catch (IOException e) { e.printStackTrace(); } finally { // 5. 释放资源 try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } } |
(2)使用Get方式访问HTTP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package com.example.httpclient.httpClientDemo; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import java.io.IOException; public class HttpGetDemo { public static void main(String[] args) { // 1. 创建HttpClient对象 CloseableHttpClient httpClient = HttpClientBuilder.create().build(); // 2. 创建HttpGet对象 HttpGet httpGet = new HttpGet( "https://www.baidu.com/cache/fpid/chromelib_1_1.js?_=1636686387459" ); CloseableHttpResponse response = null ; try { // 3. 执行GET请求 response = httpClient.execute(httpGet); System. out .println(response.getStatusLine()); // 4. 获取响应实体 HttpEntity entity = response.getEntity(); // 5. 处理响应实体 if (entity != null ) { System. out .println( "长度:" + entity.getContentLength()); System. out .println( "内容:" + EntityUtils.toString(entity)); } } catch (IOException e) { e.printStackTrace(); } finally { // 6. 释放资源 try { response.close(); httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } } |
本文作者:vkd
本文链接:https://www.cnblogs.com/de-ming/p/16561131.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步