一次使用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
),allowHeaders
,exposedHeaders
,methods
,allowCredentials
,maxAge
,具体使用不介绍,加上了以后Postwoman就能正常发送请求了:
3 再次尝试
但是IDEA中的HTTP Client还是不行啊,就最最最普通的GET请求,还是返回500:
于是换了一种思路,想再用其他类似插件的方式测试。
所以就想到了VScode,里面有一个类似的扩展叫REST Client,安装以后写了一个普通的GET请求,完全没问题:
但还是想不到为什么IDEA还是不行啊???
还是500 。。。
。。。
但是,反过来想,可能是请求发送不出去,因为如果是接受到了请求的话,肯定会有日志记录的,但是没有,所以原因可能是请求发送不出去。。。
4 最终答案
一个普通的GET请求为什么发送不出去?
到底是为什么会返回500?
最后,经过一番痛苦的思考,找到了问题所在:代理!
发送不出去就是因为设置了本地代理,返回的500,是代理服务器返回的,不是Tomcat返回的。
终于,把代理去掉之后,HTTP Client就可以正常使用了:
没错,“真凶”就是代理。
最后终于打消了笔者的误解,为什么IDEA中的HTTP Client会这么“菜”,连一个普通的GET请求也发送不出去??
一次使用IDEA中HTTP Client的经历的更多相关文章
- Android系统进程间通信(IPC)机制Binder中的Client获得Server远程接口过程源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6633311 在上一篇文章中,我 们分析了And ...
- postfix中recipient/client/sender/helo四者的区别<转载>
postfix在main.cf中用下面四个做限制,那么这四者到底有什么区别? smtpd_recipient_restrictions smtpd_client_restrictions smtpd_ ...
- 在nodejs中引进模块要经历的步骤
在nodejs中引入模块需要经历如下3个步骤 1.路径分析 2.文件定位 3.编译执行 在nodejs中模块分为两类,一类是nodejs提供的模块,称为核心模块,另一类的用户编写的模块,称为文件模块. ...
- Java - 在WebService中使用Client调用三方的RestAPI
背景 近期,由于项目的要求需要在自己的webservice中调用远程的WebAPI(Restful format).自己的webservice程序是用Java编码写的,所以需要在其中实现一个Clien ...
- HBase中的Client如何路由到正确的RegionServer
在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer.什么叫相应的RegionServer?就是管理你要操 ...
- python基础===python3中 http.client 和 urllib的那些事
import http.client #python3中没有了 httplib的库 #python 3.x中urllib库和urilib2库合并成了urllib库.. #其中urllib2.urlop ...
- Spring3拦截引发的问题——WEB开发中的client路径
什么是client路径? 第一类.也就是html或js文件等client訪问的文件里的路径,这里包含一些资源文件的引入(js.css还有各种图片等),或是跳转到静态html页面,总之获取的都是静态资源 ...
- Dynamics 365中的Client API form context (formContext)
适用于Dynamics 365 for Customer Engagement apps 9.x版本. 本文是一篇翻译,原文来源是微软官方文档. 本文链接:https://www.cnblogs.co ...
- 踏着前人的脚印学hadoop——ipc中的Client
1.Client有五个内部类,分别是Call,ParallelCall,ParallelResult,Connetion,ConnectionId 其实这五个类就是去完成两件事情的,一件事情是连接,另 ...
随机推荐
- C++算法代码——和为给定数
题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?cid=1376&pid=0 题目描述 给出若干个整数,询问其中是否有一对数的和等于给 ...
- Java中Singleton的三种实现方式解析
一.什么是Singleton? <设计模式>的作者.Eclipse和 Junit 的开发者 Erich Gamma 在它的理论体系中将 Singleton 定义为仅仅被实例化一次的类.在当 ...
- vue的el-select标签全选以及出现需要有禁用选项
首先说一下遇到这种问题的解决思路吧,很简单先去https://element.eleme.cn/#/zh-CN 这个官网上找到对应的需求,然后就是拼接数据的问题. 以下是全选的例子: <el-s ...
- JS语法-ES6
1.介绍 ECMAScript 6简称ES6,是JavaScript语言的下一代标准. 2.常用属性及方法 2.1常量与变量的定义 在JavaScript中,我们一般使用var来定义变量,实际上它是有 ...
- RabbitMQ之死信队列
1:何为死信队列 死信队列也是一个正常的队列,可以被消费. 但是,死信队列的消息来源于其他队列的转发. 2:如何触发死信队列 1:消息超时 2:队列长度达到极限 3:消息被拒绝消费,并不再重进队列,且 ...
- pandas的数据筛选之isin和str.contains函数
筛选是在平时的工作中使用非常频繁的功能,前文介绍了loc和iloc的筛选方法,现在继续介绍一些筛选的方法. DataFrame列表 以>,<,==,>=,<=来进行选择(& ...
- MySQL提权 通过UDF
目录 UDF是什么 命令执行 文本写入 Example: 远程写入 反弹Shell 提权 UDF是什么 参考:https://www.cnblogs.com/litlife/p/9030673.htm ...
- 剑指 Offer 53 - II. 0~n-1中缺失的数字 + 二分法
剑指 Offer 53 - II. 0-n-1中缺失的数字 Offer_53 题目详情 java代码 package com.walegarrett.offer; /** * @Author Wale ...
- c++随机数问题研究
1.问题背景 某项目中有个复杂的排序,先是各种规则依次排序,最后如果依然并列的话,那就随机位置,名次并列.测试中发现一个诡异现象,并列时随机排序但随机后2个case打印的顺序每次都一样,随机数没有起到 ...
- 选择 FreeBSD 而不是 Linux 的技术性原因1
Ports FreeBSD Ports 是一个惊人的工程壮举.NetBSD 的 pkgsrc (package source) 和 OpenBSD 的 ports collection 都源于 Fre ...