如何通过 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");
}
我有一个简单的 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");
}