问题描述:需要访问外部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方法相关推荐

  1. springboot接收浏览器发送delete请求( method not allowed 405解决方法)

    [README] 浏览器使用form提交信息的时候只支持GET和POST,如果需要在浏览器上使用PUT和DELETE请求方式的话,只能使用欺骗的方式了,SpringMvc提供了HiddenHttpMe ...

  2. spring mvc 3支持 http 的put和delete方法

    浏览器form表单只支持GET与POST请求,而DELETE.PUT等method并不支持,spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法,使得支持GET.POST.PUT ...

  3. StringBuffer的delete方法与deleteCharAt方法的区别。

    delete方法与deleteCharAt两个方法都是用来删除StringBuffer字符串指定索引字符的方法, delete(int  begin,int  end)有两个参数,使用时删除索引从be ...

  4. 【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法

    1.saveOrUpdate方法剖析 saveOrUpdate方法:分情况看是save还是update. 示例: public void testSaveOrUpdate(){Teacher t=ne ...

  5. Hibernate Session的delete()方法

    本文介绍Hibernate Session的delete()方法.delete()方法用于从数据库中删除与Java对象对应的记录.对应游离对象和持久化对象,delete语句会做出不同的反应. dele ...

  6. php sql delete 返回值,delete方法

    delete方法 1.功能:删除数据表中满足条件的记录必须设置条件,否则该方法拒绝执行,以确保数据安全 2.源码:系统中有二个delete方法,名称相同,功能不同 1. /thinkphp/libra ...

  7. 【EventBus】EventBus 源码解析 ( 事件发送 | postToSubscription 方法 | EventBus 线程模式处理细节 )

    文章目录 一.事件发送 postSingleEventForEventType 方法 二.事件发送 postToSubscription 方法 三.事件发送 invokeSubscriber 方法 一 ...

  8. elasticsearch query delete 方法

    2019独角兽企业重金招聘Python工程师标准>>> elasticsearch query delete 方法 博客分类: java 搜索引擎,爬虫 删除api允许从特定索引通过 ...

  9. SFTP连接GCP,向服务器发送文件方法,第三方工具生成密钥对连接GCP服务器(putty生成密钥远程连接服务器)...

    190223更新通过WinSCP工具导入key,向服务器发送文件方法: 很多时候需要向服务器发送文件,GCP和一般服务器不太一样,使用ftp和用户名密码不容易获取,一般采用秘钥的方式,下边介绍实现方法 ...

  10. (hibernate之三)session的delete方法

    public void test() { Session session=sessionFactory.getCurrentSession(); //删除方法1 Teacher teacher=new ...

最新文章

  1. 【C语言】一些简单编译错误或警告
  2. STP:五种端口状态与角色 RSTP:3种端口状态与角色
  3. BZOJ3573:[HNOI2014]米特运输(树形DP)
  4. 组件化开发和模块化开发概念辨析
  5. WebSocket部署服务器外网无法连接解决方案
  6. Centos显示-bash-4.1$问题的修复及原因探究
  7. win7开机动画_优化win7系统 让系统运行更顺畅
  8. 过滤选择器——可见性过滤选择器
  9. 输入法注入源码_将注入进行到底:利用Mono注入C#游戏脚本
  10. 设计模式之不简单的工厂模式(一)
  11. 把DataTable转换为泛型ListT或是JSON
  12. 计算机软考论文网络真题,软考历年真题在线测试系统测试与开发
  13. matlab-高数 反、双曲、正、余弦、正切函数
  14. 双极性正弦脉宽调制(双极性SPWM)介绍及MATLAB仿真验证
  15. (翻译)线框图和设计原型图之间的区别是什么?
  16. oracle的dmp文件导入mysql_Oracle 数据库导入导出 dmp文件
  17. 内网穿透软件对比——cpolar : 花生壳(中)
  18. uc保存网页html,UC浏览器怎么保存网页
  19. 实用工具分享——PDF阅读
  20. 考研英语 长难句训练day65

热门文章

  1. 用SVM分类模型处理iris数据集
  2. Android下ping的简单工具类
  3. 软件测试环境搭建及维护注意事项
  4. Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-DIC)【ADIC2D代码复现及原理介绍】
  5. linux c 读写 ini 配置文件
  6. DIY强大的虚拟化环境-组装于测试部分-2.L5420主机
  7. Java毕业设计-企业员工考勤打卡管理系统
  8. 【持续更新】总结国内外图形学物理模拟相关学者和网站
  9. 测试方法——正交表法
  10. linux tar 打包排除指定目录