![](/img/trans.png)
[英]Java HttpURLConnection setRequestProperty is not setting custom header key
[英]HttpURLConnection - How to send Headers in setRequestProperty
我正在嘗試使用如下Java代碼在給定的URL中發送標頭:
URL u = new URL("http://domain:8081/App/mycall");
HttpURLConnection con= (HttpURLConnection) u.openConnection();
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("Auth-Token", authToken);
BufferedReader rd = new BufferedReader(new InputStreamReader(con.getInputStream()));
然后在我的應用程序中,我正在檢查Auth-Token
如下所示:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
if (SecurityContextHolder.getContext().getAuthentication() != null) {
String reqToken = req.getHeader("Auth-Token");
}
}
當我在帶標題的郵遞員中調用上述URL時,它可以正常工作。 但是,當我使用Java代碼運行URL時, SecurityContextHolder.getContext().getAuthentication()
始終返回null
。
我究竟做錯了什么?
在創建URL之前添加以下行可解決我的問題:
CookieHandler.setDefault(new CookieManager());
現在,在給定URL中發送標題看起來像這樣,並且可以正常工作:
CookieHandler.setDefault(new CookieManager());
URL u = new URL("http://domain:8081/App/mycall");
HttpURLConnection con= (HttpURLConnection) u.openConnection();
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("Auth-Token", authToken);
BufferedReader rd = new BufferedReader(new InputStreamReader(con.getInputStream()));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.