Class OkHttp

java.lang.Object
org.apache.nutch.protocol.http.api.HttpBase
org.apache.nutch.protocol.okhttp.OkHttp
All Implemented Interfaces:
Configurable, Pluggable, Protocol

public class OkHttp extends HttpBase
  • Field Details

    • LOG

      protected static final org.slf4j.Logger LOG
  • Constructor Details

    • OkHttp

      public OkHttp()
  • Method Details

    • setConf

      public void setConf(Configuration conf)
      Specified by:
      setConf in interface Configurable
      Overrides:
      setConf in class HttpBase
    • getCustomRequestHeaders

      protected List<String[]> getCustomRequestHeaders()
    • getClient

      protected okhttp3.OkHttpClient getClient(URL url)
      Distribute hosts over clients by host name
      Parameters:
      url - URL to fetch
      Returns:
      client responsible to fetch the given URL
    • getResponse

      protected Response getResponse(URL url, CrawlDatum datum, boolean redirect) throws ProtocolException, IOException
      Specified by:
      getResponse in class HttpBase
      Throws:
      ProtocolException
      IOException
    • resolveUrl

      public URL resolveUrl(URL base, String relative) throws MalformedURLException
      Resolve a relative URL using OkHttp's HttpUrl parser, which is more lenient than Java's URL (handles malformed protocol-relative slashes such as https:////host/path, IDN→punycode, host case normalization, etc.). Falls back to Java URL if HttpUrl cannot parse.
      Parameters:
      base - the base URL the relative URL is resolved against
      relative - the relative URL string (typically a Location: header value)
      Returns:
      resolved absolute URL
      Throws:
      MalformedURLException - if the URL is malformed
    • main

      public static void main(String[] args) throws Exception
      Throws:
      Exception