RestTemplate方式发送http请求

编程入门 行业动态 更新时间:2024-10-20 04:05:34

RestTemplate<a href=https://www.elefans.com/category/jswz/34/1771414.html style=方式发送http请求"/>

RestTemplate方式发送http请求

先前写了一个OKHttp3方式的http请求工具类,对比学习RestTemplate方式。相关的概念、原理各位可自行学习,这里分享一下RestTemplate方式的工具类。

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.http.*;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;/*** http请求工具类**/
public class HttpUtil {/*** get请求** @param url* @param params 请求参数* @return*/public static String get(String url, MultiValueMap<String, String> params) {return get(url, params, null);}/*** get请求** @param url* @param params  请求参数* @param headers 请求头* @return*/public static String get(String url, MultiValueMap<String, String> params, MultiValueMap<String, String> headers) {return request(url, params, headers, HttpMethod.GET);}/*** post请求** @param url* @param params 请求参数* @return*/public static String post(String url, MultiValueMap<String, String> params) {return post(url, params, null);}/*** post请求** @param url* @param params  请求参数* @param headers 请求头* @return*/public static String post(String url, MultiValueMap<String, String> params, MultiValueMap<String, String> headers) {return request(url, params, headers, HttpMethod.POST);}/*** put请求** @param url* @param params 请求参数* @return*/public static String put(String url, MultiValueMap<String, String> params) {return put(url, params, null);}/*** put请求** @param url* @param params  请求参数* @param headers 请求头* @return*/public static String put(String url, MultiValueMap<String, String> params, MultiValueMap<String, String> headers) {return request(url, params, headers, HttpMethod.PUT);}/*** delete请求** @param url* @param params 请求参数* @return*/public static String delete(String url, MultiValueMap<String, String> params) {return delete(url, params, null);}/*** delete请求** @param url* @param params  请求参数* @param headers 请求头* @return*/public static String delete(String url, MultiValueMap<String, String> params, MultiValueMap<String, String> headers) {return request(url, params, headers, HttpMethod.DELETE);}/*** 表单请求** @param url* @param params  请求参数* @param headers 请求头* @param method  请求方式* @return*/public static String request(String url, MultiValueMap<String, String> params, MultiValueMap<String, String> headers, HttpMethod method) {if (params == null) {params = new LinkedMultiValueMap<>();}return request(url, params, headers, method, MediaType.APPLICATION_FORM_URLENCODED);}/*** http请求** @param url* @param params    请求参数* @param headers   请求头* @param method    请求方式* @param mediaType 参数类型* @return*/public static String request(String url, Object params, MultiValueMap<String, String> headers, HttpMethod method, MediaType mediaType) {if (url == null || url.trim().isEmpty()) {return null;}RestTemplate client = new RestTemplate();// headerHttpHeaders httpHeaders = new HttpHeaders();if (headers != null) {httpHeaders.addAll(headers);}// 提交方式:表单、jsonhttpHeaders.setContentType(mediaType);HttpEntity<Object> httpEntity = new HttpEntity(params, httpHeaders);ResponseEntity<String> response = client.exchange(url, method, httpEntity, String.class);return response.getBody();}public static String doPostJson(String url, Map<String, String> headerMap, String json) {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);if (headerMap != null) {Iterator headerIterator = headerMap.entrySet().iterator();          //循环增加headerwhile(headerIterator.hasNext()){Map.Entry<String,String> elem = (Map.Entry<String, String>) headerIterator.next();httpPost.addHeader(elem.getKey(),elem.getValue());}}// 创建请求内容StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);httpPost.setEntity(entity);// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "UTF8");} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}}

更多推荐

RestTemplate方式发送http请求

本文发布于:2023-11-15 01:54:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1591651.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:方式   RestTemplate   http

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!