HTTP Client是IDEA中自帶的一個插件,用於代替原來的REST Client,打開Tools->HTTP Client->Test RESTful Web Service
,會提示REST Client不推薦使用,推薦使用HTTP Client:java
而後固然就點擊使用啊,可是,問題來了,一個普通的GET請求都發送不出去????跨域
IDEA的東西估計沒這麼菜吧???瀏覽器
確定不會這麼菜的。。。服務器
可是爲何就是發不出去???ide
GET請求對吧,瀏覽器也能夠作,因而,使用了瀏覽器進行測試,一點問題都沒有:測試
沒理由啊,筆者在想,那爲何IDEA不行呢??插件
接着使用了大名鼎鼎的Postman,也是一點問題也沒有:3d
Postman也沒問題啊,接着試試「情敵」Postwoman,問題來了!代理
發送不出去,查看了一下F12控制檯,報錯以下:日誌
搜索了一下解決辦法,是跨域資源請求的問題,在Controller類上加上
@CrossOrigin(value = "http://localhost:3000")
便可,由於Postwoman默認運行的端口爲3000。
這個註解還能夠做用在方法上,起做用的就是對應的方法,這裏是對整個Controller起做用。
另外這裏只使用了最簡單的參數,其餘的參數還有origins
(同value
),allowHeaders
,exposedHeaders
,methods
,allowCredentials
,maxAge
,具體使用不介紹,加上了之後Postwoman就能正常發送請求了:
可是IDEA中的HTTP Client仍是不行啊,就最最最普通的GET請求,仍是返回500:
因而換了一種思路,想再用其餘相似插件的方式測試。
因此就想到了VScode,裏面有一個相似的擴展叫REST Client,安裝之後寫了一個普通的GET請求,徹底沒問題:
但仍是想不到爲何IDEA仍是不行啊???
仍是500 。。。
。。。
可是,反過來想,多是請求發送不出去,由於若是是接受到了請求的話,確定會有日誌記錄的,可是沒有,因此緣由多是請求發送不出去。。。
一個普通的GET請求爲何發送不出去?
究竟是爲何會返回500?
最後,通過一番痛苦的思考,找到了問題所在:代理!
發送不出去就是由於設置了本地代理,返回的500,是代理服務器返回的,不是Tomcat返回的。
終於,把代理去掉以後,HTTP Client就能夠正常使用了:
沒錯,「真兇」就是代理。
最後終於打消了筆者的誤解,爲何IDEA中的HTTP Client會這麼「菜」,連一個普通的GET請求也發送不出去??