一次使用IDEA中HTTP Client的经历

1 开端

HTTP Client是IDEA中自带的一个插件,用于代替原来的REST Client,打开Tools->HTTP Client->Test RESTful Web Service,会提示REST Client不推荐使用,推荐使用HTTP Client:java

在这里插入图片描述

而后固然就点击使用啊,可是,问题来了,一个普通的GET请求都发送不出去????跨域

在这里插入图片描述

IDEA的东西估计没这么菜吧???浏览器

确定不会这么菜的。。。服务器

可是为何就是发不出去???ide

2 尝试

GET请求对吧,浏览器也能够作,因而,使用了浏览器进行测试,一点问题都没有:测试

在这里插入图片描述

没理由啊,笔者在想,那为何IDEA不行呢??插件

接着使用了大名鼎鼎的Postman,也是一点问题也没有:3d

在这里插入图片描述

Postman也没问题啊,接着试试“情敌”Postwoman,问题来了!代理

发送不出去,查看了一下F12控制台,报错以下:日志

在这里插入图片描述

搜索了一下解决办法,是跨域资源请求的问题,在Controller类上加上

@CrossOrigin(value = "http://localhost:3000")

便可,由于Postwoman默认运行的端口为3000。

这个注解还能够做用在方法上,起做用的就是对应的方法,这里是对整个Controller起做用。

另外这里只使用了最简单的参数,其余的参数还有origins(同value),allowHeadersexposedHeadersmethodsallowCredentialsmaxAge,具体使用不介绍,加上了之后Postwoman就能正常发送请求了:

在这里插入图片描述

3 再次尝试

可是IDEA中的HTTP Client仍是不行啊,就最最最普通的GET请求,仍是返回500:

在这里插入图片描述

因而换了一种思路,想再用其余相似插件的方式测试。

因此就想到了VScode,里面有一个相似的扩展叫REST Client,安装之后写了一个普通的GET请求,彻底没问题:

在这里插入图片描述

但仍是想不到为何IDEA仍是不行啊???

仍是500 。。。

。。。

可是,反过来想,多是请求发送不出去,由于若是是接受到了请求的话,确定会有日志记录的,可是没有,因此缘由多是请求发送不出去。。。

4 最终答案

一个普通的GET请求为何发送不出去?

究竟是为何会返回500?

最后,通过一番痛苦的思考,找到了问题所在:代理!

在这里插入图片描述

发送不出去就是由于设置了本地代理,返回的500,是代理服务器返回的,不是Tomcat返回的。

终于,把代理去掉以后,HTTP Client就能够正常使用了:

在这里插入图片描述

没错,“真凶”就是代理。

最后终于打消了笔者的误解,为何IDEA中的HTTP Client会这么“菜”,连一个普通的GET请求也发送不出去??