package org.apereo.cas.util.http; import java.net.URL; /** * Define the behaviour of a HTTP client. * * @author Jerome Leleu * @author Misagh Moayyed * @since 4.0.0 */ public interface HttpClient { /** * Sends a message to a particular endpoint. Option of sending it without * waiting to ensure a response was returned. * This is useful when it doesn't matter about the response as you'll perform no action based on the response. * * @param message The message that should be sent to the http endpoint * @return boolean if the message was sent, or async was used. false if the message failed. * @since 4.1.0 */ boolean sendMessageToEndPoint(HttpMessage message); /** * Contact the URL endpoint as a GET and return the resulting http message. * * @param url the url * @return the http message */ HttpMessage sendMessageToEndPoint(URL url); /** * Make a synchronous HTTP(S) call to ensure that the url is reachable. * * @param url the url to call * @return whether the url is valid */ boolean isValidEndPoint(String url); /** * Make a synchronous HTTP(S) call to ensure that the url is reachable. * * @param url the url to call * @return whether the url is valid */ boolean isValidEndPoint(URL url); /** * Gets wrapped http client. * * @return the wrapped http client */ org.apache.http.client.HttpClient getWrappedHttpClient(); }