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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM