Class HttpRequestBuilder

java.lang.Object
de.xima.fc.http.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 Details

    • 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 String uri, EHttpRequestType requestType) throws URISyntaxException
      Parameters:
      method - HTTP method to use.
      uri - The request URL, must not be null
      requestType - The request type to use
      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 Details

    • 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.
    • addParameter

      @Deprecated @Nonnull public HttpRequestBuilder addParameter(@Nonnull String name, @Nonnull String value)
      Parameters:
      name - Name of the parameter to add.
      value - Value of the parameter to add.
      Returns:
      This builder for chaining method calls.
    • addParameter

      @Deprecated @Nonnull public HttpRequestBuilder addParameter(@Nonnull String name, @Nonnull String value, @Nonnull org.apache.http.entity.ContentType contentType)
      Parameters:
      name - Name of the parameter to add.
      value - Value of the parameter to add.
      contentType - Content type of the parameter.
      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.
    • getUrl

      @Nonnull public String getUrl()
      Returns:
      The request URL
    • getUri

      public URI getUri()
      Returns:
      The request URI
    • setUri

      public void setUri(URI uri)
      Parameters:
      uri - The request URI to set
    • formDataBuilder

      public IFormDataBodyBuilder formDataBuilder()
      Returns:
      A builder 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.
    • multipartBuilder

      public IMultipartBodyBuilder multipartBuilder()
      Returns:
      A builder 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.
    • customBuilder

      Returns:
      A builder for custom request body. This is a shortcut for calling setBody(HttpEntity) with the appropriate entity. You must call IHttpBodyBuilder.build() to add the body to this request.
    • fileBuilder

      public IFileBodyBuilder<FileBodyBuilder> fileBuilder()
      Returns:
      A builder for an request body based on an file. This is a shortcut for calling setBody(HttpEntity) with the appropriate entity. You must call IHttpBodyBuilder.build() to add the body to this request.
    • urliBuilder

      public IUrlDataBuilder<UrlDataBuilder> urliBuilder()
      Returns:
      A builder for an request body based on an file. This is a shortcut for calling setUri(URI) with the appropriate data. You must call IHttpBodyBuilder.build() to change the URL of this request.
    • createBuilder

      public IHttpBodyBuilder createBuilder(EHttpRequestType type, boolean hasFiles)
      Creates an builder for the request type
      Parameters:
      type - the type
      hasFiles - flag which indicates if files should be transmitted when using the body type EHttpRequestType.DYNAMIC.
      Returns:
      A builder based on the given parameters
    • 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:
    • 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(boolean supportsMessageBody)
      Parameters:
      supportsMessageBody - Whether this request supports a message body. When it does not, no body will be set.
      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.
    • withAllowInvalidCertificates

      public HttpRequestBuilder withAllowInvalidCertificates(boolean allowInvalidCertificates)
      Sets whether to allow invalid certificates.
      Parameters:
      allowInvalidCertificates - Whether to allow invalid certificates.
      Returns:
      This builder for chaining method calls.
    • withConnectTimeout

      public HttpRequestBuilder withConnectTimeout(Duration connectTimeout)
      Sets the connect timeout for the request. The connect timeout is the time to wait for a connection to be established. When not set, a default value is used.
      Parameters:
      connectTimeout - The connect timeout.
      Returns:
      This builder for chaining method calls.
    • withReadTimeout

      public HttpRequestBuilder withReadTimeout(Duration readTimeout)
      Sets the read timeout for the request. The read timeout is the time to wait for data to be read from the server. When not set, a default value is used.
      Parameters:
      readTimeout - The read timeout.
      Returns:
      This builder for chaining method calls.