gpt4 book ai didi

java - 在 java 套接字服务器中添加 HTTP header 到响应

转载 作者:太空宇宙 更新时间:2023-11-04 06:07:01 25 4
gpt4 key购买 nike

我不确定在哪里或使用什么命令将 HTTP header 添加到服务器的响应中。

import java.io.*;
import java.net.*;
import com.sun.net.httpserver.*;

public class Response {

private static final int BUFFER_SIZE = 9999;
Request request;
BufferedOutputStream output;
//constructor para el output
public Response(BufferedOutputStream output){
this.output = output;
}
//Set del request
public void setRequest(Request request){
this.request = request;
}

public void sendResource() throws IOException{

File file = new File(Java_Server.Web_dir,request.getUri());
byte [] bytearray = new byte[(int) file.length()];

FileInputStream file_out = null;

if(file.exists())
file_out = new FileInputStream(file);
else{
String errorMessage = "HTTP/1.1 404 File Not Found\r\n" +
"Content-Type: text/html\r\n" +
"Content-Length: 23\r\n" +
"\r\n" +
"<h1>File Not Found</h1>";
output.write(errorMessage.getBytes());
}

BufferedInputStream bis = new BufferedInputStream(file_out);

try{
bis.read(bytearray,0,bytearray.length);
output.write(bytearray,0 , bytearray.length);
output.flush();
output.close();
return;
}catch (IOException e){
e.printStackTrace();
}

}

内容被传送到浏览器,但没有 HTTP header ,例如,如果发送图像,浏览器不会显示图像,而是逐字节显示。

最佳答案

首选的方法是实现 Servlet 并在 Servlet 容器中运行它。然后调用 HttpServletResponse 对象上的 setHeader 方法:

public class ExampleServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setHeader("X-Whatever-Header-Name-You-Want", "Value");
}
}

关于java - 在 java 套接字服务器中添加 HTTP header 到响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29724892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com