Class KHTTPServerThread

All Implemented Interfaces:
AutoCloseable, Runnable
Direct Known Subclasses:
KHTTPServerThreadSample

public abstract class KHTTPServerThread extends KSocketServerThread
Class to handle user HTTP connections accepted by KSocketServerListener. The user class needs to override the default implementations for the HTTP methods get(), put(), etc. The HTTP response headers Date, Server, Content-Type, Content-Length and Connection are automatically provided unless overridden thru setResponseHeaders().
Since:
2025.04.13
  • Method Details

    • delete

      public void delete(String argURL, byte[] argPayload)
      HTTP DELETE method. Override this method to implement it.
      Parameters:
      argURL - Passed URL e.g. "/test/s=any"
      argPayload - HTTP payload passed with HTTP request
    • get

      public void get(String argURL)
      HTTP GET method. Override this method to implement it.
      Parameters:
      argURL - Passed URL e.g. "/test/s=any"
    • getMaxPayloadSize

      public int getMaxPayloadSize()
      Get maximum size of payload to be read.
      Returns:
      Size of maximum payload
    • getRequestHeaders

      public Properties getRequestHeaders()
      Get HTTP request headers.
      Returns:
      HTTP request headers
    • head

      public void head(String argURL)
      HTTP HEAD method. Override this method to implement it.
      Parameters:
      argURL - Passed URL e.g. "/test/s=any"
    • options

      public void options(String argURL, byte[] argPayload)
      HTTP OPTIONS method. Override this method to implement it.
      Parameters:
      argURL - Passed URL e.g. "/test/s=any"
      argPayload - HTTP payload passed with HTTP request
    • connect

      public void connect(String argURL, byte[] argPayload)
      HTTP CONNECT method. Override this method to implement it.
      Parameters:
      argURL - Passed URL e.g. "/test/s=any"
      argPayload - HTTP payload passed with HTTP request
    • patch

      public void patch(String argURL, byte[] argPayload)
      HTTP PATCH method. Override this method to implement it.
      Parameters:
      argURL - Passed URL e.g. "/test/s=any"
      argPayload - HTTP payload passed with HTTP request
    • post

      public void post(String argURL, byte[] argPayload)
      HTTP POST method. Override this method to implement it.
      Parameters:
      argURL - Passed URL e.g. "/test/s=any"
      argPayload - HTTP payload passed with HTTP request
    • put

      public void put(String argURL, byte[] argPayload)
      HTTP PUT method. Override this method to implement it.
      Parameters:
      argURL - Passed URL e.g. "/test/s=any"
      argPayload - HTTP payload passed with HTTP request
    • run

      public void run()
      Thread main entry point (called by KSocketServerListener).
      Specified by:
      run in interface Runnable
      Overrides:
      run in class KSocketServerThread
    • sendFile

      public boolean sendFile(String argFileName)
      Send file.
      Parameters:
      argFileName - Name (and path) of file to be sent.
      Returns:
      True for success, false otherwise
    • sendFile

      public boolean sendFile(String argFileName, boolean argDownload)
      Send file.
      Parameters:
      argFileName - Name (and path) of file to be sent
      argDownload - Tell client (browser) to locally save the file
      Returns:
      True for success, false otherwise
    • sendHTML

      public boolean sendHTML(String argMessage, Object... argObjects)
      Send HTML string.
      Parameters:
      argMessage - HTML string to be sent
      argObjects - Replace parameters, if needed
      Returns:
      True for success, false otherwise
    • sendText

      public boolean sendText(int argStatus, String argMessage, Object... argObjects)
      Send text string.
      Parameters:
      argStatus - HTTP status code
      argMessage - Text string to be sent
      argObjects - Replace parameters, if needed
      Returns:
      True for success, false otherwise
    • sendText

      public boolean sendText(String argMessage, Object... argObjects)
      Send text string.
      Parameters:
      argMessage - Text string to be sent
      argObjects - Replace parameters, if needed
      Returns:
      True for success, false otherwise
    • setMaxPayloadSize

      public void setMaxPayloadSize(int argMaxSize)
      Set maximum payload size to be read.
      Parameters:
      argMaxSize - Maximum payload size
    • setResponseHeaders

      public void setResponseHeaders(Properties argHeaders)
      Set additional headers to be sent in HTTP response.
      Parameters:
      argHeaders - HTTP response header(s)
    • toString

      public String toString()
      String representation of object.
      Overrides:
      toString in class KSocketServerThread
    • trace

      public void trace(String argURL, byte[] argPayload)
      HTTP TRACE method. Override this method to implement it.
      Parameters:
      argURL - Passed URL e.g. "/test/s=any"
      argPayload - HTTP payload passed with HTTP request