【问题标题】:How does an AsyncServerRequestHandler set response headers?AsyncServerRequestHandler 如何设置响应标头?
【发布时间】:2018-06-26 06:09:27
【问题描述】:

在使用 Apache httpcore 5 for java 时,AsyncServerRequestHandler 中的 handle() 方法如何将标头添加到响应中?

https://hc.apache.org/httpcomponents-core-5.0.x/examples.html 有几个示例,例如 https://hc.apache.org/httpcomponents-core-5.0.x/httpcore5-h2/examples/org/apache/hc/core5/http/examples/Http2FileServerExample.java,但它们有些密集。

在旧的 httpcore

response.setHeader("Access-Control-Allow-Origin", "*")

但不清楚httpcore 5使用的许多间接层中哪一层是可以访问响应头的层,以及哪个对象具有与setHeader对应的方法。

【问题讨论】:

    标签: java http2


    【解决方案1】:

    您可以将HttpResponse 传递给BasicResponseProducer 的构造函数。

    例如在问题中的Http2FileServerExample

    responseTrigger.submitResponse(new BasicResponseProducer(
                    HttpStatus.SC_OK, new FileEntityProducer(file, contentType)));
    

    可以变成:

    BasicHttpResponse response = new BasicHttpResponse(HttpStatus.SC_OK);
    response.setHeader("Access-Control-Allow-Origin", "*");
    responseTrigger.submitResponse(new BasicResponseProducer(
                    response, new FileEntityProducer(file, contentType)));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-09
      • 2018-11-09
      • 1970-01-01
      • 2015-08-23
      • 2018-06-24
      • 2016-06-04
      • 2012-06-19
      相关资源
      最近更新 更多