一次使用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請求也發送不出去??

相關文章
相關標籤/搜索