java操作api发送http的delete请求,参数的value是中文报400错误,英文或数字就不报错,这个怎么破
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java操作api发送http的delete请求,参数的value是中文报400错误,英文或数字就不报错,这个怎么破相关的知识,希望对你有一定的参考价值。
参考技术A 中文转译成UTF-8,即调用Unicode函数试试。java 发送POST,DELETE,PATCH,GET请求
import java.io.IOException; import org.apache.commons.codec.CharEncoding; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpOptions; import org.apache.http.client.methods.HttpPatch; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPut; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * HTTP请求辅助工具 * * @project iweixin-pay * @fileName WeixinUtil.java * @Description * @author light-zhang * @date 2018年5月29日下午3:29:42 * @version 1.0.0 */ public class HttpUtils { private static final Logger logger = LoggerFactory.getLogger(HttpUtils.class); private static final HttpClient httpClient = HttpClientBuilder.create().build(); /** * 发送POST请求 * * @param url * @param _class * @return */ public static <T> T post(String url, Class<T> typeOfT) { try { HttpResponse response = httpClient.execute(new HttpPost(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("post httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送DELETE请求 * * @param url * @param typeOfT * @return */ public static <T> T delete(String url, Class<T> typeOfT) { try { HttpResponse response = httpClient.execute(new HttpDelete(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("delete httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送PATCH请求 * * @param url * @param typeOfT * @return */ public static <T> T patch(String url, Class<T> typeOfT) { try { HttpResponse response = httpClient.execute(new HttpPatch(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("patch httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送GET请求 * * @param url * @param obj * @return */ public static <T> T get(String url, Class<T> typeOfT) { try { HttpResponse response = httpClient.execute(new HttpGet(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("get httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送PUT请求 * * @param url * @param _class * @return */ public static <T> T put(String url, Class<T> typeOfT) { try { HttpResponse response = httpClient.execute(new HttpPut(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("put httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 发送OPTIONS请求 * * @param url * @param typeOfT * @return */ public static <T> T options(String url, Class<T> typeOfT) { try { HttpResponse response = httpClient.execute(new HttpOptions(url)); HttpEntity entity = response.getEntity(); if (entity != null) { logger.debug("options httpRequest url info:{},response info:{}", url, response); return JsonPoolUtils.fromJson(EntityUtils.toString(entity, CharEncoding.UTF_8), typeOfT); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } }
以上是关于java操作api发送http的delete请求,参数的value是中文报400错误,英文或数字就不报错,这个怎么破的主要内容,如果未能解决你的问题,请参考以下文章
如何在 HttpURLConnection 中发送 PUT、DELETE HTTP 请求?
Java Spring REST API CORS 不适用于通过 jQuery 和 Chrome 的 DELETE 请求