有一个第三方应用程序需要通过自定义的HTTP标头获取信息,因此我编写了一个简单的测试应用程序,该应用程序创建了此标头,然后重定向到列出所有标头的页面。
生成标头的servlet片段为:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
response.setHeader("cust-header", "cust-val");
response.sendRedirect("header.jsp");
}
另一方面,来自header.jsp的相关代码是:
<%
Enumeration enumeration = request.getHeaderNames();
while (enumeration.hasMoreElements()) {
String string = (String)enumeration.nextElement();
out.println("<font size = 6>" +string +": " + request.getHeader(string)+ "</font><br>");
}
%>
显示以下标题:
Host: localhost:9082
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; es-ES; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://localhost:9082/HdrTest/login.jsp
Cookie: JSESSIONID=0000tubMmZOXDyuM4X9RmaYYTg4:-1
好像从未插入过自定义标头。我该如何解决?
谢谢
通过 重定向, 您基本上是在指示客户端(网络浏览器)触发全新的HTTP请求。全新的请求也意味着全新的响应。将其替换为 转发 :
request.getRequestDispatcher("header.jsp").forward(request, response);
或者,如果您确实希望将其包含在重定向的请求中,则创建一个Filter
映射到的对象,/header.jsp
并相应地修改标头。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
((HttpServletResponse) response).setHeader("foo", "bar");
chain.doFilter(request, response);
}
另请注意,您在显示 请求 标头header.jsp
而不是 响应
标头。由于没有可用的直接API显示响应标头,因此您想使用外部HTTP标头嗅探工具(如Firebug(
网络
面板)或Fiddler)来调查它们。
如何将自定义标头添加到HttpClient请求?我使用方法发布JSON。我需要添加的自定义标题是 这是我到目前为止所做的:
问题内容: 我想知道是否可以通过添加自定义信息来配置所有$ http请求标头。像config这样的东西: 但是对于所有$ http呼叫,我将使用不同的服务。我敢肯定有一个解决方案:D。谢谢 问题答案: 您可以创建一个拦截器来扩展标题:
这是我的AngularJS代码(如果我删除header选项,它可以正常工作)。 请求如下: 答复: 我添加了和头,但请求仍然失败 大写字母(我的意思是vs)是否会导致失败?如果是,我如何才能让AngularJS停止这样做? Go服务器路由代码:
如何为截击请求设置自定义标题?目前,有一种方法可以为POST请求设置正文内容。我有一个简单的GET请求,但我需要同时传递自定义头。我不知道JsonRequest类如何支持它。有可能吗?
我试图在我的POST请求中传递一个应用程序特定的头,但是我得到了错误-步骤头XXX-XXX没有一个匹配的胶水代码。 如何在请求中指定特定于我的应用程序的头。以下是我正在提交的示例请求:
我需要发送一个GET请求,标题是:。我期待服务器的XML响应。我用邮递员测试了请求和响应,一切都很好。但是,当我尝试在Spring中使用执行此操作时,我总是会收到400个错误请求。的异常是: 我的代码: 调试消息将标头显示为,这似乎是正确的。我想知道我的请求出了什么问题,以及是否有一种方法可以看到在线调试的请求。