抛弃 Postman 投入 IDEA New Http Client 怀抱

都2020年了,idea也用了大概两三年了,开发工具基本都换成了jetbrain全家桶,pycharm、webstorm、phpstorm、goland、datagrip,竟然今天才发现idea自带的Http Client😂。找了几个刚开发的api接口试用了一番,突然就感觉Postman不够香了! 开始 idea新版的httpclient是直接嵌入到编辑区的,新建一个后缀为http的文件,双击打开后按一定格式编写代码后,即可开始测试api接口 鼠标移动到文件编辑区的右上方有个悬浮按钮,分别为查看历史和示例按钮 点击示例按钮可以看到官方给的常用的http请求示例 按照示例文件编写好代码后,点击左侧的运行按钮即可发送请求 点击查看历史按钮可以看到发送请求的历史记录 环境变量 把httpclient直接嵌入编辑器,够简单够纯粹,已经让我爱不释手了,没想到还有意外惊喜 - 支持定义环境变量。 在项目根目录下新建一个名为http-client.env.json的配置文件,或者如果环境变量里包含敏感信息新建名为http-client.private.env.json的配置文件(idea已经帮我们把这个文件加入git的ignore列表),定义环境变量格式如下: { "local": { "host": "localhost:8081" }, "prod": { "host": "bovod.org" } } 这样就可以在代码中通过{{变量名}}的方式使用环境变量 其他功能 通过简单的回调函数测试响应结果(暂时没用到,可在官方示例里看到) 总结 比Postman更轻量,相比图形界面更简洁,更纯粹!

2020-07-22

springboot 切面开发

pom.xml 添加 AOP 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> 入口类添加@EnableAspectJAutoProxy注解开启AOP 编写切面类 @Aspect @Component public class AuthAspect { @Autowired HttpServletRequest request; @Autowired protected WaterStationService waterStationService; @Before("execution(* cn.agoodwater.admin.controller.*.*(..))") public void proceed(JoinPoint joinPoint) throws Throwable { System.out.println("进入切点"); String remoteUser = request.getRemoteUser(); if(StringUtils.isNotBlank(remoteUser) && !"admin".equalsIgnoreCase(remoteUser)){ WaterStationBO ws = waterStationService.queryByManager(remoteUser); Object[] obj = joinPoint.getArgs(); for (Object obj1 : obj) { if(!(obj1 instanceof HttpServletResponse)){ Method setWsIdMethod = null; Class<?> aClass = obj1.getClass(); try { setWsIdMethod = aClass.getDeclaredMethod("setWsId",Integer.class); } catch (Exception e) { // } if(setWsIdMethod!...

2020-06-23

springboot 集成 websocket

添加 websocket 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> 添加配置WebSocketConfig import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; @Configuration public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } } 编写一个WebSocketServer用来收发消息 import cn.agoodwater.admin.ws.vo.WsMsg; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import javax.websocket.*; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; import java.io.IOException; import java.util.concurrent.CopyOnWriteArraySet; @Slf4j @ServerEndpoint("/ws/{sid}") @Component public class WebSocketServer { //静态变量,用来记录当前在线连接数。应该把它设计成线程安全的。 private static int onlineCount = 0; //concurrent包的线程安全Set,用来存放每个客户端对应的MyWebSocket对象。 private static CopyOnWriteArraySet<WebSocketServer> webSocketSet = new CopyOnWriteArraySet<WebSocketServer>(); //与某个客户端的连接会话,需要通过它来给客户端发送数据 private Session session; //接收sid private String sid=""; /** * 连接建立成功调用的方法*/ @OnOpen public void onOpen(Session session,@PathParam("sid") String sid) { this....

2020-06-18

记一次springmvc 404 错误

今天用户反馈一个操作报错,错误码404,司空见惯了,立马开始排查 @Controller 注解有 @RequestMapping 注解有 @RequestMapping 没加method,理论各种方法都支持,直接拷贝链接贴到浏览器,能访问 给方法加个method=POST,然并卵,GET正常的405错误,POST则404,邪门儿的很(这一步纯粹浪费时间) 妥协了,本地起来找个测试数据看看吧,一切正常,这就尴尬了。。。 检测服务器nginx配置,正常(这一步也是浪费时间) 查看入参,终于发现异样,有个参数定义的Integer,报404的场景传的小数,至此真相大白 //TODO 还有一点没想明白,GET什么参数都不传正常访问,POST什么参数不传也是404,和传错参数类型症状一样,传错参数不是400吗?

2020-06-13

springboot 项目部署方案

第一种:可执行 jar 部署方式 在pom.xml里添加如下配置 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <executable>true</executable> </configuration> </plugin> 执行 maven 打包命令打成 jar maven package 上传 jar 到服务器后可直接运行 java -jar foo.jar ##后台运行 nohup java -jar foo.jar& 添加到 centos 的服务 ln -s /opt/foo.jar /etc/init.d/foo ##启动服务 service start foo

2020-04-03

idea2019.1破解补丁下载

淘宝买的破解码最近失灵了,到官网看了看最新的价格499刀每年,果然人穷到哪都受鄙视,我一定好好敲代码挣钱,争取早日用上正版。😐 ...

2020-01-17

maven学习笔记

常用命令 ## 安装到本地跳过测试 mvn install -Dmaven.test.skip=true

2019-10-09