CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-apache-httpcomponents--fluent-hc

Apache HttpComponents Client fluent API providing a simplified interface for HTTP operations

Pending
Overview
Eval results
Files

request-operations.mddocs/

HTTP Request Operations

The Request class provides a fluent interface for building and configuring HTTP requests. All methods return the Request instance for method chaining.

Request Factory Methods

Create HTTP requests using static factory methods for each HTTP method:

public static Request Get(String uri);
public static Request Get(URI uri);
public static Request Post(String uri);
public static Request Post(URI uri);
public static Request Put(String uri);
public static Request Put(URI uri);
public static Request Delete(String uri);
public static Request Delete(URI uri);
public static Request Head(String uri);
public static Request Head(URI uri);
public static Request Options(String uri);
public static Request Options(URI uri);
public static Request Patch(String uri);
public static Request Patch(URI uri);
public static Request Trace(String uri);
public static Request Trace(URI uri);

Usage Examples

// GET request
Request getRequest = Request.Get("https://api.example.com/users");

// POST request  
Request postRequest = Request.Post("https://api.example.com/users");

// PUT request with URI object
URI uri = new URI("https://api.example.com/users/123");
Request putRequest = Request.Put(uri);

Request Execution

Execute the configured request and get a Response object:

public Response execute() throws ClientProtocolException, IOException;
public void abort() throws UnsupportedOperationException;

Usage Examples

// Execute and get response
Response response = Request.Get("https://api.example.com/data").execute();

// Abort a request (if still in progress)
Request request = Request.Get("https://slow-api.example.com/data");
request.abort();

Header Configuration

Configure HTTP headers using various methods:

public Request addHeader(Header header);
public Request addHeader(String name, String value);
public Request setHeader(Header header);
public Request setHeader(String name, String value);
public Request removeHeader(Header header);
public Request removeHeaders(String name);
public Request setHeaders(Header... headers);
public Request setCacheControl(String cacheControl);
public Request setDate(Date date);
public Request setIfModifiedSince(Date date);
public Request setIfUnmodifiedSince(Date date);

Usage Examples

import org.apache.http.message.BasicHeader;
import java.util.Date;

Request request = Request.Post("https://api.example.com/data")
    .addHeader("Authorization", "Bearer token123")
    .addHeader("Content-Type", "application/json")
    .setHeader(new BasicHeader("X-API-Version", "v1"))
    .setCacheControl("no-cache")
    .setDate(new Date())
    .setIfModifiedSince(new Date(System.currentTimeMillis() - 86400000)); // 24 hours ago

HTTP Protocol Configuration

Configure HTTP protocol settings:

public Request version(HttpVersion version);
public Request useExpectContinue();
public Request userAgent(String agent);

Usage Examples

import org.apache.http.HttpVersion;

Request request = Request.Post("https://api.example.com/upload")
    .version(HttpVersion.HTTP_1_1)
    .useExpectContinue()
    .userAgent("MyApp/1.0");

Connection Configuration

Configure connection timeouts and proxy settings:

public Request socketTimeout(int timeout);
public Request connectTimeout(int timeout);
public Request viaProxy(HttpHost proxy);
public Request viaProxy(String proxy);

Usage Examples

import org.apache.http.HttpHost;

Request request = Request.Get("https://api.example.com/data")
    .connectTimeout(5000)    // 5 second connection timeout
    .socketTimeout(30000)    // 30 second socket timeout
    .viaProxy(new HttpHost("proxy.example.com", 8080))
    .viaProxy("proxy.example.com:8080");

Request Body Configuration

Configure request body for entity-enclosing requests (POST, PUT, PATCH):

public Request body(HttpEntity entity);
public Request bodyString(String s, ContentType contentType);
public Request bodyFile(File file, ContentType contentType);
public Request bodyByteArray(byte[] b);
public Request bodyByteArray(byte[] b, ContentType contentType);
public Request bodyByteArray(byte[] b, int off, int len);
public Request bodyByteArray(byte[] b, int off, int len, ContentType contentType);
public Request bodyStream(InputStream inStream);
public Request bodyStream(InputStream inStream, ContentType contentType);
public Request bodyForm(Iterable<? extends NameValuePair> formParams);
public Request bodyForm(Iterable<? extends NameValuePair> formParams, Charset charset);
public Request bodyForm(NameValuePair... formParams);

Usage Examples

import org.apache.http.entity.ContentType;
import org.apache.http.client.fluent.Form;
import java.io.File;
import java.io.FileInputStream;
import java.nio.charset.StandardCharsets;

// JSON string body
Request jsonRequest = Request.Post("https://api.example.com/users")
    .bodyString("{\"name\":\"John\",\"email\":\"john@example.com\"}", ContentType.APPLICATION_JSON);

// File body
File file = new File("/path/to/document.pdf");
Request fileRequest = Request.Put("https://api.example.com/documents")
    .bodyFile(file, ContentType.APPLICATION_OCTET_STREAM);

// Byte array body
byte[] data = "Hello World".getBytes(StandardCharsets.UTF_8);
Request byteRequest = Request.Post("https://api.example.com/data")
    .bodyByteArray(data, ContentType.TEXT_PLAIN);

// Stream body
FileInputStream stream = new FileInputStream(file);
Request streamRequest = Request.Post("https://api.example.com/upload")
    .bodyStream(stream, ContentType.APPLICATION_OCTET_STREAM);

// Form data body
Request formRequest = Request.Post("https://api.example.com/login")
    .bodyForm(Form.form()
        .add("username", "user")
        .add("password", "pass")
        .build());

// Form with custom charset
Request formWithCharset = Request.Post("https://api.example.com/submit")
    .bodyForm(Form.form()
        .add("comment", "Héllo Wörld")
        .build(), StandardCharsets.UTF_8);

Constants

public static final String DATE_FORMAT = "EEE, dd MMM yyyy HH:mm:ss zzz";
public static final Locale DATE_LOCALE = Locale.US;
public static final TimeZone TIME_ZONE = TimeZone.getTimeZone("GMT");

Deprecated Methods

These methods are deprecated and have no effect:

@Deprecated public Request config(String param, Object object);
@Deprecated public Request removeConfig(String param);
@Deprecated public Request elementCharset(String charset);
@Deprecated public Request staleConnectionCheck(boolean b);

Error Handling

Request methods can throw:

  • IllegalStateException - When trying to set body on non-entity-enclosing requests (GET, HEAD, etc.)
  • UnsupportedOperationException - When calling abort() on completed requests
  • Parameter validation occurs during execution, not during request building

Usage Examples

try {
    // This will throw IllegalStateException
    Request.Get("https://api.example.com/data")
        .bodyString("data", ContentType.TEXT_PLAIN)
        .execute();
} catch (IllegalStateException e) {
    System.err.println("Cannot set body on GET request: " + e.getMessage());
}

Install with Tessl CLI

npx tessl i tessl/maven-org-apache-httpcomponents--fluent-hc

docs

async-operations.md

executor-auth.md

index.md

request-operations.md

response-handling.md

tile.json