gpt4 book ai didi

java - 如果我使用response.sendRedirect,如何设置 header

转载 作者:行者123 更新时间:2023-12-02 05:50:46 24 4
gpt4 key购买 nike

之前的场景:-用户通过 Portal 登录并点击某个链接,Portal 将包含 headers(用户名)的请求发送到报告服务器以检索报告。

当前情况:-门户已被重写, header 现在采用 JSON 格式,用于完成身份验证的 header 值以不同的方式命名。我们考虑拦截请求并以报告服务器读取的方式重新排列 header ,以便请求可以通过。

我们考虑在报告服务器所在的同一个盒子上的新 Tomcat 服务器中部署这个新的拦截器应用程序,并且我无法使用 RequestDispatcher.forward ,并且如果我使用 sendRedirect 会使我在作为浏览器执行 sendRedirect 之前添加的任何 header 值无效将发出新请求。

我尝试使用 HttpClient 打开一个新的 Http 连接到报告服务器并添加 header 值,但是当我在 Chrome 浏览器中的 Fiddler 或 HTTP header spy 中检查相同内容时,我在客户端请求对象中看不到任何 header 值。我试图从报告服务器捕获响应对象并在原始请求中设置相同的对象,然后在 servlet 的原始响应对象中设置该对象以推送到客户端浏览器。但由于我的 header 值未在 HTTPClient Post 请求中设置,因此该请求永远不会得到满足。

下面是从我的拦截器 servlet 创建 HTTPClient 的相同代码。

<小时/>
    String url = "someurl";
HttpClient client = HttpClientBuilder.create().build();
//HttpGet get = new HttpGet();
HttpPost post = new HttpPost(url);
try {
String smUser = "<user name>";
String grps = "<some values>";
post.addHeader(<headerKey1>,<smUser>);
post.addHeader(<headerkey2>, grps);
HttpResponse response = client.execute(post);
BufferedReader buff = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
response.getEntity().getContent();
String inputLine;
StringBuffer html = new StringBuffer();
while ((inputLine = buff.readLine()) != null) {
html.append(inputLine);
}
buff.close();
System.out.println("URL Content... \n" + html.toString());
<小时/>

我知道我可以使用 url 重写,但这不是一个选项,请告诉我是否有其他方法可以让我的拦截器更改 header 值并将请求传递到报告服务器,以便用户可以访问报告.

最佳答案

我也被这个问题屏蔽了。代码如下,但我添加的 header 尚未发送到目标服务。顺便说一句,有两种不同的服务

response.setHeader(key, value)
response.sendRedirect(target_url)

关于java - 如果我使用response.sendRedirect,如何设置 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56049266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com