xxx网站建设策划书范文,建筑设计招标网站,多网站绑定域名,怎样建个人网页免费SpringBoot 调用外部接口 一、第一种方式(HttpClient等) 使用插件方式#xff0c;比如自带的HttpClient#xff0c;或者OkHttp#xff0c;甚至是原生的HttpURLConnection 等等#xff0c;这里以HttpClient为例。
1、封装工具类 简单封装的get请求 /*** 发送get请求:带请求…SpringBoot 调用外部接口 一、第一种方式(HttpClient等) 使用插件方式比如自带的HttpClient或者OkHttp甚至是原生的HttpURLConnection 等等这里以HttpClient为例。
1、封装工具类 简单封装的get请求 /*** 发送get请求:带请求头和请求参数** param url 请求地址* param headers 请求头* param params 请求参数集合* return JSONObject* throws Exception*/public static JSONObject doGet(String url, MapString, Object headers, MapString, Object params) throws Exception {//创建httpClient对象CloseableHttpClient httpClient HttpClients.createDefault();URIBuilder uriBuilder new URIBuilder(url);if (params ! null) {SetMap.EntryString, Object entrySet params.entrySet();for (Map.EntryString, Object entry : entrySet) {uriBuilder.setParameter(entry.getKey(), String.valueOf(entry.getValue()));}}URI uri uriBuilder.build();HttpGet httpGet new HttpGet(uri);//设置参数httpGet.setConfig(RequestConfig.custom().setConnectTimeout(CONNECT_TIMEOUT).setSocketTimeout(SOCKET_TIMEOUT).build());//设置请求头packageHeader(headers, httpGet);CloseableHttpResponse httpResponse null;try {return getResponse(httpResponse, httpClient, httpGet);} finally {release(httpResponse, httpClient);}}
2、测试 MapString,Object headersnew HashMap();headers.put(Key,换成你自己的key);MapString,Object querynew HashMap();query.put(city,350200);JSONObject jsonObject HttpUtil.doGet(https://restapi.amap.com/v3/weather/weatherInfo, headers, query);log.info(JSONUtil.toJsonStr(jsonObject));
3、结果验证 二、第二种方式(RestTemplate) RestTemplate可用于微服务间的通信也可以用于网络请求。 其有多种提交方式postForEntity、postForObject、postForLocation等等。 这是使用getForEntity进行演示。 RestTemplate 的使用很灵活需要自己根据实际使用
1、调用方法
RestTemplate restTemplate new RestTemplate();//创建请求头HttpHeaders httpHeaders new HttpHeaders();//参数MapString, Object query new HashMap();query.put(city, 350200);query.put(Key, 换成你自己的key);HttpEntityMapString, Object httpEntity new HttpEntity(httpHeaders);String url https://restapi.amap.com/v3/weather/weatherInfo?city{city}Key{Key};//请求地址、请求体以及返回参数类型ResponseEntityJSONObject responseEntity restTemplate.getForEntity(url, JSONObject.class, query);log.info(JSONUtil.toJsonStr(responseEntity)); 三、第三种方式(Feign) 引入依赖
!-- spring-cloud-starter-openfeign --
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactIdversion4.0.0/version
/dependencyfeign是用于微服务间消费使用的也可以用于网络请求。
这里的url应该是要放在配置文件中的为了方便这边就直接写死。 注意FeignClient中的name要配置 不然在测试类中会报错
1、调用接口
/*** author xysusj*/
FeignClient(url https://restapi.amap.com/v3/weather/weatherInfo,name weatherApi)
public interface WeatherApi {/*** 获取天气详情** param key* param city* return*/GetMapping(value )JSONObject getWeather(RequestParam(Key) String key, RequestParam(city) String city);
}