简体   繁体   中英

localhost didn’t send any data.- ERR_EMPTY_RESPONSE

But to check, localhost isn't responding properly, it says "the page didn't send any data. I tried looking everywhere and changed all the possible settings I can.

restored chrome settings cleared cache, cleared history, changed port numbers,

import java.io.*;
import java.net.*;
import java.util.*;
import java.net.InetAddress.*;

public final class WebServer
{
    public static void main(String args[]) throws Exception
    {
        // Set port number
        int port = 0;
        
        // Establish the listening socket
        ServerSocket serverSocket = new ServerSocket(port);
        System.out.println("Port number is: "+serverSocket.getLocalPort());
        
        // Wait for and process HTTP service requests
        while (true) {
            // Wait for TCP connection
            Socket requestSocket = serverSocket.accept();
            
            // Create an object to handle the request
            HttpRequest request = new HttpRequest(requestSocket);
            
            //request.run()
            
            // Create a new thread for the request
            Thread thread = new Thread(request);
            
            // Start the thread
            thread.start();
        }
    }
}

final class HttpRequest implements Runnable
{
    // Constants
    // Recognized HTTP methods
    final static class HTTP_METHOD
    {
        final static String GET = "GET";
        final static String HEAD = "HEAD";
        final static String POST = "POST";
    }
    
    final static String HTTPVERSION = "HTTP/1.1";
    final static String CRLF = "\r\n";
    Socket socket;
    
    // Constructor
    public HttpRequest(Socket socket) throws Exception
    {
        this.socket = socket;
    }
    
    // Implements the run() method of the Runnable interface
    public void run()
    {
        try {
            processRequest();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
    
    // Process a HTTP request
    private void processRequest() throws Exception
    {
        // Get the input and output streams of the socket.
        InputStream ins = socket.getInputStream();
        DataOutputStream outs = new DataOutputStream(socket.getOutputStream());
        
        // Set up input stream filters
        BufferedReader br = new BufferedReader(new InputStreamReader(ins));
        
        
        // Get the request line of the HTTP request
        String requestLine = br.readLine();
        
        // Display the request line
        System.out.println();
        System.out.println("Request:");
        System.out.println(" " + requestLine);
        
        // Close streams and sockets
        outs.close();
        br.close();
        socket.close();
    }
    
    private static void sendBytes(FileInputStream fins,
    OutputStream outs) throws Exception
    {
        // Coopy buffer
        byte[] buffer = new byte[1024];
        int bytes = 0;
        
        while ((bytes = fins.read(buffer)) != -1) {
            outs.write(buffer, 0, bytes);
        }
    }
    
    private static String contentType(String fileName)
    {
        if (fileName.toLowerCase().endsWith(".htm") ||
                fileName.toLowerCase().endsWith(".html")) {
            return "text/html";
        } else if (fileName.toLowerCase().endsWith(".gif")) {
            return "image/gif";
        } else if (fileName.toLowerCase().endsWith(".jpg")) {
            return "image/jpeg";
        } else {
            return "application/octet-stream";
        }
    }
}

please help me as soon as possible.I need help in this code.

Posted code has a method sendBytes to apparently send data back, but it is not being called - no data is being sent back - the message is correct.

For each connection (attempt), the code is reading just one sent line, printing that to standard output and closing the connection. If I am not wrong, the browser is expecting a reply (positive or negative/error), but since the connection was closed without any reply, the browser must be showing the message that nothing was sent back.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM