Class HttpRequestBuilder

  • Direct Known Subclasses:
    HttpPostRequestBuilder

    public class HttpRequestBuilder
    extends Object
    Builder for preparing and sending an HTTP request.
    Since:
    7.0.1
    Author:
    XIMA MEDIA GmbH
    • Constructor Detail

      • HttpRequestBuilder

        public HttpRequestBuilder​(@Nonnull
                                  EHttpVerb method,
                                  @Nonnull
                                  String uri)
                           throws URISyntaxException
        Parameters:
        method - HTTP method to use.
        uri - The request URL, must not be null
        Throws:
        URISyntaxException - When the given string is not a valid URI.
      • HttpRequestBuilder

        public HttpRequestBuilder​(@Nonnull
                                  EHttpVerb method,
                                  @Nonnull
                                  URI uri)
        Parameters:
        method - HTTP method to use.
        uri - The request URL.
      • HttpRequestBuilder

        public HttpRequestBuilder​(@Nonnull
                                  String method,
                                  @Nonnull
                                  String uri)
                           throws URISyntaxException
        Parameters:
        method - HTTP method to use.
        uri - The request URL, must not be null
        Throws:
        URISyntaxException - When the given string is not a valid URI.
      • HttpRequestBuilder

        public HttpRequestBuilder​(@Nonnull
                                  String method,
                                  @Nonnull
                                  URI uri)
        Parameters:
        method - HTTP method to use.
        uri - The request URL.
    • Method Detail

      • addBinayData

        @Deprecated
        @Nonnull
        public HttpRequestBuilder addBinayData​(@Nonnull
                                               String elementName,
                                               @Nullable
                                               byte[] data,
                                               @Nonnull
                                               String filename,
                                               @Nonnull
                                               String mimeType)
        Parameters:
        elementName - Name of the file.
        data - Binary data of the file.
        filename - Name of the file.
        mimeType - Mime type of the file.
        Returns:
        This builder for chaining method calls.
      • addBinayData

        @Deprecated
        @Nonnull
        public HttpRequestBuilder addBinayData​(@Nonnull
                                               String elementName,
                                               @Nullable
                                               byte[] data,
                                               @Nonnull
                                               String filename,
                                               @Nonnull
                                               String mimeType,
                                               @Nonnull
                                               Charset charset)
        Parameters:
        elementName - Name of the file.
        data - Binary data of the file.
        filename - Name of the file.
        mimeType - Mime type of the file.
        charset - Charset of the file content.
        Returns:
        This builder for chaining method calls.
      • addHeader

        @Nonnull
        public HttpRequestBuilder addHeader​(@Nonnull
                                            String name,
                                            @Nonnull
                                            String value)
        Adds a header field to the HTTP request. Note that it is possible to have multiple header fields with the same name.
        Parameters:
        name - Name of the header.
        value - Value of the header.
        Returns:
        This builder for chaining method calls.
      • build

        @Deprecated
        @Nonnull
        public org.apache.http.client.methods.CloseableHttpResponse build()
                                                                   throws IOException
        Deprecated.
        Performs the HTTP request to the server and returns the response.
        Returns:
        The response that was obtained from the server.
        Throws:
        IOException - When a network failure occurred and data could not be sent to the remote host or the response could not be received.
      • build

        @Nonnull
        public HttpResponseWrapper build​(Charset outputCharset)
                                  throws IOException
        Performs the HTTP request to the server and returns the response.
        Parameters:
        outputCharset - Charset used for the response content. If null, a default charset is used.
        Returns:
        The response that was obtained from the server.
        Throws:
        IOException - When a network failure occurred and data could not be sent to the remote host or the response could not be received.
      • formDataBuilder

        public IFormDataBodyBuilder formDataBuilder()
        Returns:
        A configurator for setting a form data body on the request (application/x-www-form-urlencoded). This is a shortcut for calling setBody(HttpEntity) with the appropriate entity. You must call IFormDataBodyBuilder.build() to add the multipart body to this request.
      • getUrl

        @Nonnull
        public String getUrl()
        Returns:
        the request URL
      • multipartBuilder

        public IMultipartBodyBuilder multipartBuilder()
        Returns:
        A configurator for setting a multipart body on the request (multipart/form-data). This is a shortcut for calling setBody(HttpEntity) with the appropriate entity. You must call IHttpBodyBuilder.build() to add the multipart body to this request.
      • setBasicAuthLogin

        @Nonnull
        public HttpRequestBuilder setBasicAuthLogin​(@Nullable
                                                    String login)
        Sets the login name for performing an HTTP basic authentication.
        Parameters:
        login - User name for the basic authentication.
        Returns:
        This builder for chaining method calls.
      • setBasicAuthPassword

        @Nonnull
        public HttpRequestBuilder setBasicAuthPassword​(@Nullable
                                                       String password)
        Sets the password for performing an HTTP basic authentication.
        Parameters:
        password - Password for the basic authentication.
        Returns:
        This builder for chaining method calls.
      • setBody

        public HttpRequestBuilder setBody​(@Nonnull
                                          org.apache.http.HttpEntity body)
        Sets the body content of the HTTP request.
        Parameters:
        body - Data to be transmitted with the request.
        Returns:
        This builder for chaining method calls.
        See Also:
        formDataBuilder, multipartBuilder
      • setInputCharset

        @Nonnull
        public HttpRequestBuilder setInputCharset​(@Nonnull
                                                  Charset inputCharset)
        Sets the request character encoding.
        Parameters:
        inputCharset - encoding character set
        Returns:
        This builder for chaining method calls.
      • setProxyServer

        @Nonnull
        public HttpRequestBuilder setProxyServer​(@Nullable
                                                 FcHttpRequestProps.ProxyProps proxyConfig)
        Sets the following proxy server configuration parameters if defined inside the FcHttpRequestProps.ProxyProps object:
        • proxy server host
        • proxy server port
        • login for a proxy server authentication
        • password for a proxy server authentication
        Parameters:
        proxyConfig - the proxy server configuration
        Returns:
        This builder for chaining method calls.
      • setProxyServerAuth

        @Nonnull
        public HttpRequestBuilder setProxyServerAuth​(@Nullable
                                                     FcHttpRequestProps.ProxyAuthProps proxyAuth)
        Sets the login name and password of the proxy server, if one is used.
        Parameters:
        proxyAuth - Login name and user name for the proxy.
        Returns:
        This builder for chaining method calls.
      • setProxyServerAuthLogin

        @Nonnull
        public HttpRequestBuilder setProxyServerAuthLogin​(@Nullable
                                                          String login)
        Sets the login name for the proxy server, if one is used.
        Parameters:
        login - Login name for the proxy
        Returns:
        This builder for chaining method calls.
      • setProxyServerAuthPassword

        @Nonnull
        public HttpRequestBuilder setProxyServerAuthPassword​(@Nullable
                                                             String password)
        Sets the password for the proxy server, if one is used.
        Parameters:
        password - Password for the proxy
        Returns:
        This builder for chaining method calls.
      • setProxyServerHost

        @Nonnull
        public HttpRequestBuilder setProxyServerHost​(@Nullable
                                                     String host)
        Sets the proxy server host.
        Parameters:
        host - proxy server host
        Returns:
        This builder for chaining method calls.
      • setProxyServerPort

        @Nonnull
        public HttpRequestBuilder setProxyServerPort​(int port)
        Sets the proxy server port.
        Parameters:
        port - proxy server port
        Returns:
        This builder for chaining method calls.
      • supportsMessageBody

        @Nonnull
        public HttpRequestBuilder supportsMessageBody​(@Nullable
                                                      Boolean supportsMessageBody)
        Parameters:
        supportsMessageBody - Whether this request supports a message body. When it does not, parameters are added as URL parameters and no files are included. When null, a default is used based on the HTTP method.
        Returns:
        This builder for chaining method calls.
      • useBasicAuthentication

        public boolean useBasicAuthentication()
        Returns:
        true if an login and password for basic authentication is set, otherwise true
      • useProxyServer

        public boolean useProxyServer()
        Returns:
        true if the host and port for a proxy server use is set, otherwise false
      • useProxyServerAuthentication

        public boolean useProxyServerAuthentication()
        Returns:
        true if an login and password for proxy server authentication is set, otherwise false
      • withDisabledRedirectHandling

        @Nonnull
        public HttpRequestBuilder withDisabledRedirectHandling​(boolean disableRedirectHandling)
        Enables/Disables automatic redirect handling.
        Parameters:
        disableRedirectHandling - true or false
        Returns:
        This builder for chaining method calls.