【发布时间】:2018-08-25 07:39:56
【问题描述】:
以下是我的示例 HTTP 服务器。我需要删除响应中生成的“内容长度:”标头。我尝试了很多方法,但都没有成功。有没有办法从服务器响应中删除内容长度?
public class SimpleHttpServer {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(9000), 0);
server.createContext("/test", new TestHandler());
server.setExecutor(null); // creates a default executor
server.start();
}
static class TestHandler implements HttpHandler {
public void handle(HttpExchange t) throws IOException {
byte[] response = "Welcome to Test Server..!!\n".getBytes();
t.sendResponseHeaders(200, response.length);
OutputStream os = t.getResponseBody();
os.write(response);
os.close();
}
}
}
【问题讨论】:
-
去掉这个头域的目的是什么。因为基于此,只有客户端才能从您的流中读取内容?这是您的服务器发送的数据量。
-
我需要为测试目的生成响应
-
应该是这样的。响应中没有内容长度。 > POST / HTTP/1.1 > 用户代理:curl/7.29.0 > 接受:/ > 内容类型:application/json > 内容长度:115 > 上传完全发送:115 个字节中的 115 个
-
@MariaSekar 链接的答案是针对 Spring 程序的 - 这里的示例使用核心 JDK 类 HttpExchange
标签: java server response response-headers http-content-length