HttpUtils发送delete方法
问题描述:需要访问外部delete修饰的接口。hutool工具类的HttpUtils修饰的方法中只有get 和post 请求,需要自己重写
如果使用post 和get 则会报405问题
package com.zhada.cloud.transit.infrastructure.utils;import com.alibaba.fastjson.JSON;
import org.apache.http.HttpEntity;
import org.apache.http.client.ResponseHandler;
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.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;import java.io.IOException;
import java.util.Map;public class HttpUtils {/*** HttpClient发送json字符串post请求** @param* @param json* @return*/public static HttpResult sendPost(String url, Map<String, Object> headers, String json) {HttpResult result = null;CloseableHttpClient httpClient = HttpClients.createDefault();ResponseHandler<String> responseHandler = new BasicResponseHandler();try {//第一步:创建HttpClient对象httpClient = HttpClients.createDefault();//第二步:创建httpPost对象HttpPost httpPost = new HttpPost(url);//第三步:给httpPost设置JSON格式的参数StringEntity requestEntity = new StringEntity(json, "utf-8");requestEntity.setContentEncoding("UTF-8");if (headers !=null){for (Map.Entry<String, Object> entry : headers.entrySet()) {httpPost.setHeader(entry.getKey(), String.valueOf(entry.getValue()));}}httpPost.setEntity(requestEntity);//第四步:发送HttpPost请求,获取返回值String msg = httpClient.execute(httpPost, responseHandler);result = JSON.parseObject(msg,HttpResult.class);} catch (Exception e) {e.printStackTrace();} finally {try {httpClient.close();} catch (IOException e) {e.printStackTrace();}}//第五步:处理返回值return result ;}public static String doDelete(String data, String url) throws IOException {CloseableHttpClient client = null;HttpDeleteWithBody httpDelete = null;String result = null;try {client = HttpClients.createDefault();httpDelete = new HttpDeleteWithBody(url);httpDelete.addHeader("Content-type","application/json; charset=utf-8");httpDelete.setHeader("Accept", "application/json; charset=utf-8");httpDelete.setEntity(new StringEntity(data));CloseableHttpResponse response = client.execute(httpDelete);HttpEntity entity = response.getEntity();result = EntityUtils.toString(entity);if (200 == response.getStatusLine().getStatusCode()) {}} catch (Exception e) {} finally {client.close();}return result;}public static class HttpResult{private String flag;private String code;private String msg;private String lid;private String datas;public String getFlag() {return flag;}public void setFlag(String flag) {this.flag = flag;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public String getLid() {return lid;}public void setLid(String lid) {this.lid = lid;}public String getDatas() {return datas;}public void setDatas(String datas) {this.datas = datas;}}
}
package com.zhada.cloud.transit.infrastructure.utils;import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;import java.net.URI;public class HttpDeleteWithBody extends HttpEntityEnclosingRequestBase {public static final String METHOD_NAME = "DELETE";/*** 获取方法(必须重载)** @return*/@Overridepublic String getMethod() {return METHOD_NAME;}public HttpDeleteWithBody(final String uri) {super();setURI(URI.create(uri));}public HttpDeleteWithBody(final URI uri) {super();setURI(uri);}public HttpDeleteWithBody() {super();}}
HttpUtils发送delete方法相关推荐
- springboot接收浏览器发送delete请求( method not allowed 405解决方法)
[README] 浏览器使用form提交信息的时候只支持GET和POST,如果需要在浏览器上使用PUT和DELETE请求方式的话,只能使用欺骗的方式了,SpringMvc提供了HiddenHttpMe ...
- spring mvc 3支持 http 的put和delete方法
浏览器form表单只支持GET与POST请求,而DELETE.PUT等method并不支持,spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持GET.POST.PUT ...
- StringBuffer的delete方法与deleteCharAt方法的区别。
delete方法与deleteCharAt两个方法都是用来删除StringBuffer字符串指定索引字符的方法, delete(int begin,int end)有两个参数,使用时删除索引从be ...
- 【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法
1.saveOrUpdate方法剖析 saveOrUpdate方法:分情况看是save还是update. 示例: public void testSaveOrUpdate(){Teacher t=ne ...
- Hibernate Session的delete()方法
本文介绍Hibernate Session的delete()方法.delete()方法用于从数据库中删除与Java对象对应的记录.对应游离对象和持久化对象,delete语句会做出不同的反应. dele ...
- php sql delete 返回值,delete方法
delete方法 1.功能:删除数据表中满足条件的记录必须设置条件,否则该方法拒绝执行,以确保数据安全 2.源码:系统中有二个delete方法,名称相同,功能不同 1. /thinkphp/libra ...
- 【EventBus】EventBus 源码解析 ( 事件发送 | postToSubscription 方法 | EventBus 线程模式处理细节 )
文章目录 一.事件发送 postSingleEventForEventType 方法 二.事件发送 postToSubscription 方法 三.事件发送 invokeSubscriber 方法 一 ...
- elasticsearch query delete 方法
2019独角兽企业重金招聘Python工程师标准>>> elasticsearch query delete 方法 博客分类: java 搜索引擎,爬虫 删除api允许从特定索引通过 ...
- SFTP连接GCP,向服务器发送文件方法,第三方工具生成密钥对连接GCP服务器(putty生成密钥远程连接服务器)...
190223更新通过WinSCP工具导入key,向服务器发送文件方法: 很多时候需要向服务器发送文件,GCP和一般服务器不太一样,使用ftp和用户名密码不容易获取,一般采用秘钥的方式,下边介绍实现方法 ...
- (hibernate之三)session的delete方法
public void test() { Session session=sessionFactory.getCurrentSession(); //删除方法1 Teacher teacher=new ...
最新文章
- 【C语言】一些简单编译错误或警告
- STP:五种端口状态与角色 RSTP:3种端口状态与角色
- BZOJ3573:[HNOI2014]米特运输(树形DP)
- 组件化开发和模块化开发概念辨析
- WebSocket部署服务器外网无法连接解决方案
- Centos显示-bash-4.1$问题的修复及原因探究
- win7开机动画_优化win7系统 让系统运行更顺畅
- 过滤选择器——可见性过滤选择器
- 输入法注入源码_将注入进行到底:利用Mono注入C#游戏脚本
- 设计模式之不简单的工厂模式(一)
- 把DataTable转换为泛型ListT或是JSON
- 计算机软考论文网络真题,软考历年真题在线测试系统测试与开发
- matlab-高数 反、双曲、正、余弦、正切函数
- 双极性正弦脉宽调制(双极性SPWM)介绍及MATLAB仿真验证
- (翻译)线框图和设计原型图之间的区别是什么?
- oracle的dmp文件导入mysql_Oracle 数据库导入导出 dmp文件
- 内网穿透软件对比——cpolar : 花生壳(中)
- uc保存网页html,UC浏览器怎么保存网页
- 实用工具分享——PDF阅读
- 考研英语 长难句训练day65