Как AsyncServerRequestHandler устанавливает заголовки ответа? - PullRequest
0 голосов
/ 25 июня 2018

При использовании Apache httpcore 5 для java, как метод handle () в AsyncServerRequestHandler добавляет заголовки к ответу?

Есть несколько примеров на 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 вы бы сделали что-то вроде </p>

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

, но неясно, какой из МНОГИХ слоев косвенности, чтоhttpcore 5 использует слой с доступом к заголовкам ответа, и у какого объекта есть метод, соответствующий setHeader.

1 Ответ

0 голосов
/ 26 июня 2018

Вы можете передать HttpResponse в конструктор BasicResponseProducer.

Так, например, в Http2FileServerExample в вопросе:

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

canстать:

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