All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netease.cloud.http.HttpResponseHandler Maven / Gradle / Ivy

The newest version!
package com.netease.cloud.http;

/**
 * Responsible for handling an HTTP response and returning an object of type T.
 * For example, a typical response handler might accept a response, and
 * translate it into a concrete typed object.
 * 
 * @param 
 *            The output of this response handler.
 */
public interface HttpResponseHandler {

	/**
	 * Accepts an HTTP response object, and returns an object of type T.
	 * Individual implementations may choose to handle the response however they
	 * need to, and return any type that they need to.
	 * 
	 * @param response
	 *            The HTTP response to handle, as received from an service.
	 * 
	 * @return An object of type T, as defined by individual implementations.
	 * 
	 * @throws Exception
	 *             If any problems are encountered handling the response.
	 */
	public T handle(HttpResponse response) throws Exception;

	/**
	 * Indicates if this response handler requires that the underlying HTTP
	 * connection not be closed automatically after the response is
	 * handled.
	 * 

* For example, if the object returned by this response handler manually * manages the stream of data from the HTTP connection, and doesn't read all * the data from the connection in the {@link #handle(HttpResponse)} method, * this method can be used to prevent the underlying connection from being * prematurely closed. *

* Response handlers should use this option very carefully, since it means * that resource cleanup is no longer handled automatically, and if * neglected, can result in the client runtime running out of resources for * new HTTP connections. * * @return True if this response handler requires that the underlying HTTP * connection be left open, and not automatically closed, otherwise * false. */ public boolean needsConnectionLeftOpen(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy