Class OneMinuteWire

java.lang.Object
com.jcabi.http.wire.OneMinuteWire
All Implemented Interfaces:
Wire

@Immutable public final class OneMinuteWire extends Object implements Wire
Wire that throws an IOException if a request takes longer than a minute.

It's recommended to use this decorator in production, in order to avoid stuck requests:

 String html = new JdkRequest("http://goggle.com")
   .through(OneMinuteWire.class)
   .header(HttpHeaders.ACCEPT, MediaType.TEXT_PLAIN)
   .fetch()
   .body();

The class is immutable and thread-safe.

Since:
0.10
  • Constructor Details

    • OneMinuteWire

      public OneMinuteWire(Wire wire)
      Public ctor.
      Parameters:
      wire - Original wire
  • Method Details

    • send

      @Timeable(limit=1, unit=MINUTES) public Response send(Request req, String home, String method, Collection<Map.Entry<String,String>> headers, InputStream content, int connect, int read) throws IOException
      Description copied from interface: Wire
      Send request and return response.
      Specified by:
      send in interface Wire
      Parameters:
      req - Request
      home - URI to fetch
      method - HTTP method
      headers - Headers
      content - HTTP body
      connect - The connect timeout
      read - The read timeout
      Returns:
      Response obtained
      Throws:
      IOException - if fails