代码之家  ›  专栏  ›  技术社区  ›  Mutant Bob

asyncserverrequesthandler如何设置响应头?

  •  1
  • Mutant Bob  · 技术社区  · 8 年前

    在使用ApacheHttpCore5 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<=4下,您可以执行如下操作

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

    但目前还不清楚,HtpCype 5使用的间接层中的哪一层是对响应头的访问层,以及哪个对象具有与SeTead相对应的方法。

    1 回复  |  直到 8 年前
        1
  •  1
  •   df778899    8 年前

    你可以通过 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)));