Package com.restfb

Class DefaultWebRequestor

java.lang.Object
com.restfb.DefaultWebRequestor
All Implemented Interfaces:
WebRequestor
Direct Known Subclasses:
ETagWebRequestor

public class DefaultWebRequestor extends Object implements WebRequestor
Default implementation of a service that sends HTTP requests to the Facebook API endpoint.
Author:
Mark Allen
  • Field Details

  • Constructor Details

  • Method Details

    • getHttpClient

      protected java.net.http.HttpClient getHttpClient()
    • executeGet

      Description copied from interface: WebRequestor
      Given a Facebook API endpoint URL, execute a GET against it.
      Specified by:
      executeGet in interface WebRequestor
      Parameters:
      request - The request data for the GET request
      Returns:
      HTTP response data.
      Throws:
      IOException - If an error occurs while performing the GET operation.
    • executePost

      Description copied from interface: WebRequestor
      Given a Facebook API endpoint URL and parameter string, execute a POST to the endpoint URL.
      Specified by:
      executePost in interface WebRequestor
      Parameters:
      request - The request data used for the POST request.
      Returns:
      HTTP response data.
      Throws:
      IOException - If an error occurs while performing the POST.
    • initHeaderAccessToken

      protected void initHeaderAccessToken(java.net.http.HttpRequest.Builder builder, WebRequestor.Request request)
    • openConnection

      protected java.net.http.HttpRequest.Builder openConnection(URL url) throws IOException
      Given a url, opens and returns a connection to it.

      If you'd like to pipe your connection through a proxy, this is the place to do so.

      Parameters:
      url - The URL to connect to.
      Returns:
      A connection to the URL.
      Throws:
      IOException - If an error occurs while establishing the connection.
      Since:
      1.6.3
    • createHttpClientBuilder

      protected java.net.http.HttpClient.Builder createHttpClientBuilder()
      Factory for the HTTP client builder used by this requestor.
      Returns:
      pre-configured HttpClient.Builder
    • customizeRequest

      protected void customizeRequest(java.net.http.HttpRequest.Builder builder, WebRequestor.Request request, DefaultWebRequestor.HttpMethod httpMethod)
      Hook method that lets subclasses tweak the HttpRequest.Builder before the request is sent.

      Typical customizations include adding extra headers or adjusting timeouts per request type. This implementation is a no-op.

      Parameters:
      builder - the builder for the outbound request
      request - the logical RestFB request that triggered this HTTP call
      httpMethod - the HTTP method used for the call
    • closeQuietly

      protected void closeQuietly(Closeable closeable)
      Attempts to cleanly close a resource, swallowing any exceptions that might occur since there's no way to recover anyway.

      It's OK to pass null in, this method will no-op in that case.

      Parameters:
      closeable - The resource to close.
    • write

      protected void write(InputStream source, OutputStream destination, int bufferSize) throws IOException
      Writes the contents of the source stream to the destination stream using the given bufferSize.
      Parameters:
      source - The source stream to copy from.
      destination - The destination stream to copy to.
      bufferSize - The size of the buffer to use during the copy operation.
      Throws:
      IOException - If an error occurs when reading from source or writing to destination.
      NullPointerException - If either source or @{code destination} is null.
    • isAutocloseBinaryAttachmentStream

      returns if the binary attachment stream is closed automatically
      Returns:
      true if the binary stream should be closed automatically, false otherwise
      Since:
      1.7.0
    • setAutocloseBinaryAttachmentStream

      public void setAutocloseBinaryAttachmentStream(boolean autocloseBinaryAttachmentStream)
      define if the binary attachment stream is closed automatically after sending the content to facebook
      Parameters:
      autocloseBinaryAttachmentStream - true if the BinaryAttachment stream should be closed automatically, false otherwise
      Since:
      1.7.0
    • executeDelete

      Description copied from interface: WebRequestor
      Given a Facebook API endpoint URL and parameter string, execute a DELETE to the endpoint URL.
      Specified by:
      executeDelete in interface WebRequestor
      Parameters:
      request - The request data used for the DELETE request.
      Returns:
      HTTP response data.
      Throws:
      IOException - If an error occurs while performing the DELETE.
    • createResponse

      protected WebRequestor.Response createResponse(java.net.http.HttpResponse<InputStream> httpResponse, Map<String,List<String>> headers) throws IOException
      Throws:
      IOException