前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用策略模式避免八种http请求方式多重判断

使用策略模式避免八种http请求方式多重判断

原创
作者头像
用户1233856
修改于 2022-08-25 03:41:38
修改于 2022-08-25 03:41:38
30700
代码可运行
举报
文章被收录于专栏:白码晚股白码晚股
运行总次数:0
代码可运行

八种http请求方式

http/1.1协议中共定义了八种请求方式来表明requeset-url不同的操作,分别是get、post、head、options、put、delete、trace、connect。

httpclient用if else 多重判断来实现不同请求

代码语言:java
AI代码解释
复制
        if (Consts.API.REQUEST_METHOD_POST.equals(frontendMessage.getRequestMethod().toUpperCase())) {
            // post请求实现
            return doPost(exchange);
        }
        else if (Consts.API.REQUEST_METHOD_GET.equals(frontendMessage.getRequestMethod().toUpperCase())) {
            // get请求实现
            return doGet(exchange);
        }
        else if (Consts.API.REQUEST_METHOD_PUT.equals(frontendMessage.getRequestMethod().toUpperCase())) {
            // put请求实现
            return doPut(exchange);
        }
        else if (Consts.API.REQUEST_METHOD_PATCH.equals(frontendMessage.getRequestMethod().toUpperCase())) {
            // patch请求实现
            return doPatch(exchange);
        }
        else if (Consts.API.REQUEST_METHOD_DELETE.equals(frontendMessage.getRequestMethod().toUpperCase())) {
            // delete请求实现
            return doDelete(exchange);
        }

   

使用策略模式实现http请求方式

代码语言:java
AI代码解释
复制
// httpclient写法
HttpMethod method = HttpMethod.valueOf(frontendMessage.getRequestMethod().toUpperCase());
            return webClient.method(method)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// httpclient5写法
HttpUriRequestBase request = new HttpUriRequestBase(frontendMessage.getRequestMethod().toUpperCase(), uri);
CloseableHttpResponse response = httpclient.execute(request);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
聊聊spring cloud gateway的RemoveHopByHopHeadersFilter
本文主要研究一下spring cloud gateway的RemoveHopByHopHeadersFilter
code4it
2018/09/17
1.7K0
当Tomcat遇上Netty(续集)
从下往下看,接收请求的时候走的确实是tomcat,然后通过spring cloud gateway的过滤器链,走到了一个叫作 NettyWriteResponseFilter的过滤器。
彤哥
2020/05/28
2.2K0
DartVM服务器开发(第十一天)--Jaguar处理请求
可以看到,我没有出现异常,按照正常的来走,先运行before后是responseProcessor,最后是after 那么我们制造一个异常看看有没有捕获到
rhyme_lph
2018/09/13
7960
DartVM服务器开发(第十一天)--Jaguar处理请求
Java生成微信小程序二维码,5种实现方式,一个比一个简单
先介绍一下项目场景,主要是通过微信小程序二维码裂变分享,每个账号有专属邀请二维码,分享出去,有新人扫码入驻,就可以得到现金奖励或红包奖励。当然,产品设计会更丰富,不止有裂变模式,还有渠道推广模式,还有各种奖励规则,但核心实现都是生成二维码。对于如何生成微信小程序二维码,本文一共列举了5种实现方式,其中第1、2种是网上常见的方式,第3、4、5种封装的更为优雅,文末可打包下载开箱即用的全套源码,我更期待老铁的文末 投票 :哪种方式你更喜欢?
天罡gg
2023/03/01
2.2K0
Java生成微信小程序二维码,5种实现方式,一个比一个简单
HttpClient4模拟表单提交[通俗易懂]
//servlet的访问地址是:http://localhost:80/testjs/servlet/FormServlet
全栈程序员站长
2022/09/15
8750
日常开发必备神器 HttpUtil 分享(超详细)
最近在工作中需要在后台调用各种上传、下载、以及第三方服务接口,经过研究决定使用 HttpClient,自己封装了一个 HttpClient 工具类,简单轻松的实现get、post、put、delete 以及上传、下载请求,在此分享给大家。
Java极客技术
2022/12/04
3.1K1
HTTP 请求工具类
坐标 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.1</version> <classifier>jdk15</classifier> </dependency> 工具类 package com.baomidou.springboot.uti
高大北
2022/06/14
9520
徒手撸了一个API网关,理解更透彻了,代码已上传github,自取~
来源 | cnblogs.com/2YSP/p/14223892.html 一、背景 最近在github上看了soul网关的设计,突然就来了兴趣准备自己从零开始写一个高性能的网关。经过两周时间的开发,
猿天地
2021/02/22
7090
徒手撸了一个API网关,理解更透彻了,代码已上传github,自取~
SpringMVC工作原理流程(二)
当有请求过来,首先会先调用HttpServlet的service(ServletRequest req, ServletResponse res)方法,在service方法内部调用service(HttpServletRequest request, HttpServletResponse response)方法(这个service是重载方法,参数类型不同),FrameworkServlet对这个方法重写了。FrameworkServlet方法内部会调用父类的service(HttpServletRequest request, HttpServletResponse response)方法,父类的service(HttpServletRequest request, HttpServletResponse response)方法对不同的请求类型进行了划分,比如doGet,doPost,doXXX,FrameworkServlet对每个请求类型都做了方法重写,在方法内部,都统一调用processRequest(request, response)方法进行处理。processRequest(request, response)内部会对不同请求类型请求处理。
秋白
2019/02/21
5150
SpringMVC工作原理流程(二)
《历史代码分析》4、发起Http请求
此工具类应该是复制网络上的某博主的代码,只能说简单好用,提供了常用的请求方法。但是,目前推荐使用开源的Hutool工具库,它包含许多常用的操作,提高开发效率,内网开发除外。
小码农薛尧
2025/03/10
800
《历史代码分析》4、发起Http请求
springboot实战之常用http客户端整合
本文主要介绍一下三种http客户端,httpcomponents项目下的httpclient(后边简化描述为httpcomponents-client)、restTemplate、webclient的基本用法
lyb-geek
2019/11/12
8.1K0
springboot实战之常用http客户端整合
Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。
Java_老男孩
2019/12/02
11.5K1
RestTemplate的使用和原理你都烂熟于胸了吗?【享学Spring MVC】
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
YourBatman
2019/09/18
2.2K0
RestTemplate的使用和原理你都烂熟于胸了吗?【享学Spring MVC】
JAVA移动支付微信和支付宝后台代码
前言:之前接APP支付,微信遇到了一点点坑,为了方便以后copy,把之前写的代码粘贴出来。需要的同学可以参考一下,具体参数说明还请详细查看官方文档:
王念博客
2019/07/25
4.8K0
聊聊spring cloud gateway的PreserveHostHeaderGatewayFilter
本文主要研究下spring cloud gateway的PreserveHostHeaderGatewayFilter
code4it
2018/09/17
1.5K0
Java调用微信支付
所需微信公众号信息配置 APPID:绑定支付的APPID(必须配置) MCHID:商户号(必须配置) KEY:商户支付密钥,参考开户邮件设置(必须配置) APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置) 我这个案例用的是尚硅谷一位老师提供的,这里不方便提供出来,需要大家自己找,或者公司提供
崔笑颜
2020/06/23
2K0
JavaUtil_06_HttpUtil_使用httpclient实现
一、简介 使用 appache 的 httpclient 来实现的 二、源码 package com.ray.weixin.gz.util; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.http.Consts; import org.apache.http.Header; import org.
shirayner
2018/08/10
9350
HTTP 客户端连接,选择 HttpClient 还是 OkHttp?
来源:juejin.im/post/5e156c80f265da5d3c6de72a
芋道源码
2021/09/03
9830
总结:使用 RestTemplate 发送HTTP请求
一般发送HTTP请求是使用 Apache的HttpClient,它比较灵活。在 spring cloud 中往往提供的 REST 风格的服务。RestTemplate 提供了一种简单便捷的模板类来进行HTTP操作的方式。
张云飞Vir
2021/05/18
3K0
Java调用外部REST请求的几种方式
1、RestOperations 提供了各种封装方法,非常方便直接将返回转成实体类。
伍六七AI编程
2022/03/23
8400
推荐阅读
相关推荐
聊聊spring cloud gateway的RemoveHopByHopHeadersFilter
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验