首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpURLConnection -如何在setRequestProperty中发送标头

HttpURLConnection -如何在setRequestProperty中发送标头
EN

Stack Overflow用户
提问于 2016-01-20 20:38:55
回答 1查看 207关注 0票数 0

我尝试使用Java代码在给定的URL中发送标题,如下所示:

代码语言:javascript
复制
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,如下所示:

代码语言:javascript
复制
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");
    }
}

当我在post man中用头调用上面的URL时,它工作得很好。但是当我在Java代码中运行这个URL时,SecurityContextHolder.getContext().getAuthentication()总是返回null

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-01-23 20:09:39

在创建URL之前添加以下行解决了我的问题:

代码语言:javascript
复制
CookieHandler.setDefault(new CookieManager());

在给定的URL中发送报头现在看起来像这样,并且它可以工作:

代码语言:javascript
复制
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()));
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34900328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档