package org.geogebra.common.util; import org.geogebra.common.move.ggtapi.models.AjaxCallback; /** * @author Zoltan Kovacs <zoltan@geogebra.org> * * Common abstract class for HttpRequest, implemented by different ways * in desktop and web */ public abstract class HttpRequest { /** * the default HTTP request timeout in seconds */ protected int DEFAULT_TIMEOUT = 10; /** * current timeout for HTTP requests */ private int timeout = DEFAULT_TIMEOUT; /** * stores if the HTTP request is already processed */ public boolean processed = false; /** * the textual content of the result (or the error message) */ protected String responseText; /** * Gets a response from a remote HTTP server * * @return the full textual content of the result after the request * processed (the output page itself) */ public String getResponse() { return responseText; } /** * Opens an URL * * @param url * full URL to be opened */ public abstract void sendRequest(String url); /** * Opens and URL and sends some POST parameters * * @param url * full URL to be opened * @param post * POST parameters (already encoded) */ public abstract void sendRequestPost(String url, String post, AjaxCallback callback); /** * @param timeout_secs * HTTP request timeout in seconds Modify the default timeout for * HTTP requests Warning: the desktop version currently ignores * this setting */ public void setTimeout(Integer timeout_secs) { timeout = timeout_secs; } /** * @return if the HTTP request has been processed by the remote server */ public boolean isProcessed() { return processed; } /** * @return current timeout for HTTP requests */ protected int getTimeout() { return timeout; } /** * @param responseText * response text */ protected void setResponseText(String responseText) { this.responseText = responseText; } }