如何通过 Java 在服务器端获取自定义 HTTP 请求 header

How to get the custom HTTP request header in server end by Java

我有一个简单的 Google 云函数来通过 HTTP 请求接收 InputStream

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

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

    InputStream inputStream = request.getInputStream()

}

我可以正确获取内容类型和输入流。

但是,还有一些其他信息,例如客户端在 HTTP 请求 header 中发送的 SourceFileName。我想知道如何获得此自定义 header 值?

我是 .NET 开发人员,我很容易在 .NET 中获得它:

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

谁能告诉我如何在 Java 中得到它?

你可以像那样使用 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");
}