Java 类java.nio.channels.InterruptibleChannel 实例源码

项目:dhus-core    文件:InterruptibleHttpClient.java   
/**
 * Gets a part of the given URL, writes the content into the given channel.
 * Fails if the returned HTTP status is not "206 partial content".
 *
 * @param <IWC> a generic type for any class that implements InterruptibleChannel and WritableByteChannel
 * @param url to get
 * @param output written with the content of the HTTP response
 * @param etag value of the If-Range header
 * @param range_start range byte start (inclusive)
 * @param range_end range byte end (inclusive)
 *
 * @return a response (contains the HTTP Headers, the status code, ...)
 *
 * @throws IOException IO error
 * @throws InterruptedException interrupted
 * @throws RuntimeException containing the actual exception if it is not an instance of IOException
 */
public <IWC extends InterruptibleChannel & WritableByteChannel>
      HttpResponse interruptibleGetRange(String url, final IWC output, String etag, long range_start, long range_end)
      throws IOException, InterruptedException
{
   HttpGet get = new HttpGet(url);
   get.setHeader("If-Range", etag);
   get.setHeader("Range", String.format("bytes=%d-%d", range_start, range_end));
   // This validator throws an IOException if the response code is not 206 partial content
   ResponseValidator val = new ResponseValidator()
   {
      @Override
      public void validate(HttpResponse response) throws HttpException, IOException
      {
         if (response.getStatusLine().getStatusCode() != HttpStatus.SC_PARTIAL_CONTENT)
         {
            throw new IOException("Range request does not return partial content");
         }
      }
   };
   return interruptibleRequest(get, output, val);
}
项目:dhus-core    文件:InterruptibleHttpClient.java   
/**
 * Gets the given URL, writes the content into the given channel.
 *
 * @param <IWC> a generic type for any class that implements
 *              InterruptibleChannel and WritableByteChannel.
 * @param url to get.
 * @param output written with the content of the HTTP response.
 *
 * @return a response (contains the HTTP Headers, the status code, ...).
 *
 * @throws IOException IO error.
 * @throws InterruptedException interrupted.
 * @throws RuntimeException containing the actual exception if it is not an
 *                          instance of IOException.
 */
public <IWC extends InterruptibleChannel & WritableByteChannel>
      HttpResponse interruptibleGet(String url, final IWC output)
      throws IOException, InterruptedException
{
   return interruptibleRequest(new HttpGet(url), output, null);
}
项目:dhus-core    文件:InterruptibleHttpClient.java   
/**
 * Deletes the given URL, writes the content into the given channel.
 *
 * @param <IWC> a generic type for any class that implements
 *              InterruptibleChannel and WritableByteChannel.
 * @param url to delete.
 * @param output written with the content of the HTTP response.
 *
 * @return a response (contains the HTTP Headers, the status code, ...).
 *
 * @throws IOException IO error.
 * @throws InterruptedException interrupted.
 * @throws RuntimeException containing the actual exception if it is not an
 *                          instance of IOException.
 */
public <IWC extends InterruptibleChannel & WritableByteChannel>
      HttpResponse interruptibleDelete(String url, final IWC output)
      throws IOException, InterruptedException
{
   return interruptibleRequest(new HttpDelete(url), output, null);
}
项目:DataHubSystem    文件:InterruptibleHttpClient.java   
/**
 * Gets the given URL, writes the content into the given channel.
 *
 * @param <IWC> a generic type for any classe that implements
 *              InterruptibleChannel and WritableByteChannel.
 * @param url to get.
 * @param output written with the content of the HTTP response.
 *
 * @return a response (contains the HTTP Headers, the status code, ...).
 *
 * @throws IOException IO error.
 * @throws InterruptedException interrupted.
 * @throws RuntimeException containing the actual exception if it is not an
 *                          instance of IOException.
 */
public <IWC extends InterruptibleChannel & WritableByteChannel>
      HttpResponse interruptibleGet(String url, final IWC output)
      throws IOException, InterruptedException
{
   return interruptibleRequest(new HttpGet(url), output);
}
项目:DataHubSystem    文件:InterruptibleHttpClient.java   
/**
 * Deletes the given URL, writes the content into the given channel.
 *
 * @param <IWC> a generic type for any classe that implements
 *              InterruptibleChannel and WritableByteChannel.
 * @param url to delete.
 * @param output written with the content of the HTTP response.
 *
 * @return a response (contains the HTTP Headers, the status code, ...).
 *
 * @throws IOException IO error.
 * @throws InterruptedException interrupted.
 * @throws RuntimeException containing the actual exception if it is not an
 *                          instance of IOException.
 */
public <IWC extends InterruptibleChannel & WritableByteChannel>
      HttpResponse interruptibleDelete(String url, final IWC output)
      throws IOException, InterruptedException
{
   return interruptibleRequest(new HttpDelete(url), output);
}