• 一次使用IDEA中HTTP Client的经历


    1 开端

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

    在这里插入图片描述

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

    在这里插入图片描述
    IDEA的东西估计没这么菜吧???

    肯定不会这么菜的。。。

    但是为什么就是发不出去???

    2 尝试

    GET请求对吧,浏览器也可以做,于是,使用了浏览器进行测试,一点问题都没有:

    在这里插入图片描述

    没理由啊,笔者在想,那为什么IDEA不行呢??

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

    在这里插入图片描述
    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请求也发送不出去??

  • 相关阅读:
    vscode json格式化
    fastjson autoType is not support
    springboot 使用 fastjson序列化
    openfeign 超时到底怎么配
    datax数据同步
    记录接口返回请求时间已过期
    oracle迁移mysql总结
    redistemplate封装
    SCUI学习笔记—【NODE.JS安装】
    原创:uniApp选择题列表:点击不同选择题,答案缓存在本地
  • 原文地址:https://www.cnblogs.com/6b7b5fc3/p/13110695.html
Copyright © 2020-2023  润新知