/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.pluginmanager;
import freenet.support.api.HTTPRequest;
/** Standard HTTP interface for plugins. Not very flexible. Use Toadlet's
* if you want to integrate with the main menu or want more flexibility.
*
* IMPORTANT NOTE TO IMPLEMENTORS:
* We strongly recommend you implement FredPluginThreadless as well, because
* if you do not we will have to register the plugin *before* calling
* runPlugin(). This means it won't be registered and you will probably get
* NPEs!
*/
public interface FredPluginHTTP {
// Let them return null if unhandled
/** Handle a GET request, return HTML as a string or throw.
* @throws AccessDeniedPluginHTTPException to send a 403 error.
* @throws DownloadPluginHTTPException to force data to be downloaded
* to disk, with a MIME type.
* @throws NotFoundPluginHTTPException to send a 404 error.
* @throws RedirectPluginHTTPException to send a redirect.
* @throws PluginHTTPException for any other failure, treated as a 400
* error.
*/
public String handleHTTPGet(HTTPRequest request) throws PluginHTTPException;
public String handleHTTPPost(HTTPRequest request) throws PluginHTTPException;
}