Как получить пользовательский заголовок HTTP-запроса в конце сервера с помощью Java

# #java #google-cloud-functions #http-headers

Вопрос:

У меня есть простая облачная функция Google для получения InputStream через HTTP-запрос.

 public void service(HttpRequest request, HttpResponse response) throws Exception {

    String contentType = request.getContentType().orElse("");

    InputStream inputStream = request.getInputStream()

}
 

Я могу правильно определить тип контента и входной поток.

Однако существует также некоторая другая информация, например, SourceFileName отправленная в заголовке HTTP — запроса от клиента. Мне интересно, как я могу получить это пользовательское значение заголовка?

Я разработчик .NET, и мне очень легко получить его в .NET:

 request.Headers.TryGetValue("SourceFileName", out var sourceFileName);
 

Кто — нибудь может сказать мне, как я могу получить его на Java?

Ответ №1:

Вы можете использовать такой метод getHeaders

 BufferedWriter writer = response.getWriter();

for (Map.Entry<String,List<String>> entry : request.getHeaders().entrySet()){
    writer.write(entry.getKey()   " -> "   entry.getValue().stream().collect(Collectors.joining(","))   "n");
}