CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-apache-httpcomponents--httpclient

Apache HttpComponents Client is a library of components for building client side HTTP services

Pending
Overview
Eval results
Files

http-methods.mddocs/

HTTP Request Methods

Apache HttpClient provides specific implementation classes for all standard HTTP methods. Each method class handles the appropriate HTTP semantics and provides method-specific functionality.

Base Classes

HttpUriRequest Interface

public interface HttpUriRequest extends HttpRequest {
    String getMethod();
    URI getURI();
    void abort() throws UnsupportedOperationException;
}

Base interface for HTTP requests with URI support.

HttpRequestBase

public abstract class HttpRequestBase implements HttpUriRequest, AbortableHttpRequest, Cloneable, Configurable {
    public void setURI(URI uri);
    public URI getURI();
    public void setConfig(RequestConfig config);
    public RequestConfig getConfig();
    public void abort();
    public boolean isAborted();
}

Abstract base class for HTTP requests providing common functionality.

HttpEntityEnclosingRequestBase

public abstract class HttpEntityEnclosingRequestBase extends HttpRequestBase implements HttpEntityEnclosingRequest {
    public void setEntity(HttpEntity entity);
    public HttpEntity getEntity();
    public boolean expectContinue();
}

Base class for HTTP requests that can contain an entity body (POST, PUT, PATCH).

HTTP Method Implementations

GET Requests

public class HttpGet extends HttpRequestBase {
    public HttpGet();
    public HttpGet(URI uri);
    public HttpGet(String uri);
    public String getMethod();
}

HTTP GET method implementation for retrieving resources.

HttpGet httpGet = new HttpGet("https://api.example.com/users");
CloseableHttpResponse response = httpClient.execute(httpGet);

POST Requests

public class HttpPost extends HttpEntityEnclosingRequestBase {
    public HttpPost();
    public HttpPost(URI uri);
    public HttpPost(String uri);
    public String getMethod();
}

HTTP POST method implementation for submitting data.

HttpPost httpPost = new HttpPost("https://api.example.com/users");
StringEntity entity = new StringEntity("{\"name\":\"John\",\"age\":30}", ContentType.APPLICATION_JSON);
httpPost.setEntity(entity);
CloseableHttpResponse response = httpClient.execute(httpPost);

PUT Requests

public class HttpPut extends HttpEntityEnclosingRequestBase {
    public HttpPut();
    public HttpPut(URI uri);
    public HttpPut(String uri);
    public String getMethod();
}

HTTP PUT method implementation for updating resources.

HttpPut httpPut = new HttpPut("https://api.example.com/users/123");
StringEntity entity = new StringEntity("{\"name\":\"John Updated\"}");
httpPut.setEntity(entity);
CloseableHttpResponse response = httpClient.execute(httpPut);

DELETE Requests

public class HttpDelete extends HttpRequestBase {
    public HttpDelete();
    public HttpDelete(URI uri);
    public HttpDelete(String uri);
    public String getMethod();
}

HTTP DELETE method implementation for removing resources.

HttpDelete httpDelete = new HttpDelete("https://api.example.com/users/123");
CloseableHttpResponse response = httpClient.execute(httpDelete);

HEAD Requests

public class HttpHead extends HttpRequestBase {
    public HttpHead();
    public HttpHead(URI uri);
    public HttpHead(String uri);
    public String getMethod();
}

HTTP HEAD method implementation for retrieving headers only.

HttpHead httpHead = new HttpHead("https://api.example.com/users/123");
CloseableHttpResponse response = httpClient.execute(httpHead);

OPTIONS Requests

public class HttpOptions extends HttpRequestBase {
    public HttpOptions();
    public HttpOptions(URI uri);
    public HttpOptions(String uri);
    public String getMethod();
    public Set<String> getAllowedMethods(HttpResponse response);
}

HTTP OPTIONS method implementation for discovering allowed methods.

HttpOptions httpOptions = new HttpOptions("https://api.example.com/users");
CloseableHttpResponse response = httpClient.execute(httpOptions);
Set<String> allowedMethods = httpOptions.getAllowedMethods(response);

TRACE Requests

public class HttpTrace extends HttpRequestBase {
    public HttpTrace();
    public HttpTrace(URI uri);
    public HttpTrace(String uri);
    public String getMethod();
}

HTTP TRACE method implementation for diagnostic purposes.

HttpTrace httpTrace = new HttpTrace("https://api.example.com");
CloseableHttpResponse response = httpClient.execute(httpTrace);

PATCH Requests

public class HttpPatch extends HttpEntityEnclosingRequestBase {
    public HttpPatch();
    public HttpPatch(URI uri);
    public HttpPatch(String uri);
    public String getMethod();
}

HTTP PATCH method implementation for partial resource updates.

HttpPatch httpPatch = new HttpPatch("https://api.example.com/users/123");
StringEntity entity = new StringEntity("{\"age\":31}");
httpPatch.setEntity(entity);
CloseableHttpResponse response = httpClient.execute(httpPatch);

Request Builder

RequestBuilder Class

public class RequestBuilder {
    public static RequestBuilder create(String method);
    public static RequestBuilder get();
    public static RequestBuilder get(URI uri);
    public static RequestBuilder get(String uri);
    public static RequestBuilder head();
    public static RequestBuilder head(URI uri);
    public static RequestBuilder head(String uri);
    public static RequestBuilder patch();
    public static RequestBuilder patch(URI uri);
    public static RequestBuilder patch(String uri);
    public static RequestBuilder post();
    public static RequestBuilder post(URI uri);
    public static RequestBuilder post(String uri);
    public static RequestBuilder put();
    public static RequestBuilder put(URI uri);
    public static RequestBuilder put(String uri);
    public static RequestBuilder delete();
    public static RequestBuilder delete(URI uri);
    public static RequestBuilder delete(String uri);
    public static RequestBuilder trace();
    public static RequestBuilder trace(URI uri);
    public static RequestBuilder trace(String uri);
    public static RequestBuilder options();
    public static RequestBuilder options(URI uri);
    public static RequestBuilder options(String uri);
}

RequestBuilder Configuration Methods

public RequestBuilder setUri(URI uri);
public RequestBuilder setUri(String uri);
public RequestBuilder setHeader(Header header);
public RequestBuilder setHeader(String name, String value);
public RequestBuilder addHeader(Header header);
public RequestBuilder addHeader(String name, String value);
public RequestBuilder removeHeader(Header header);
public RequestBuilder removeHeaders(String name);
public RequestBuilder setEntity(HttpEntity entity);
public RequestBuilder addParameter(String name, String value);
public RequestBuilder addParameter(NameValuePair nvp);
public RequestBuilder addParameters(NameValuePair... nvps);
public RequestBuilder setCharset(Charset charset);
public RequestBuilder setConfig(RequestConfig config);
public HttpUriRequest build();

Example usage:

HttpUriRequest request = RequestBuilder.post()
    .setUri("https://api.example.com/users")
    .setHeader("Content-Type", "application/json")
    .setEntity(new StringEntity("{\"name\":\"John\"}"))
    .build();

CloseableHttpResponse response = httpClient.execute(request);

Request Configuration

Configurable Interface

public interface Configurable {
    RequestConfig getConfig();
}

Interface for objects that can be configured with RequestConfig.

Setting Request Configuration

RequestConfig config = RequestConfig.custom()
    .setSocketTimeout(10000)
    .setConnectTimeout(10000)
    .build();

HttpGet httpGet = new HttpGet("https://api.example.com");
httpGet.setConfig(config);

Request Execution Control

AbortableHttpRequest Interface

public interface AbortableHttpRequest {
    void abort() throws UnsupportedOperationException;
}

Interface for requests that can be aborted.

HttpExecutionAware Interface

public interface HttpExecutionAware {
    boolean isAborted();
    void setCancellable(Cancellable cancellable);
}

Interface for execution-aware requests that can be cancelled.

Types

HttpEntity

public interface HttpEntity {
    boolean isRepeatable();
    boolean isChunked();
    long getContentLength();
    Header getContentType();
    Header getContentEncoding();
    InputStream getContent() throws IOException, UnsupportedOperationException;
    void writeTo(OutputStream outstream) throws IOException;
    boolean isStreaming();
    void consumeContent() throws IOException;
}

Interface representing an HTTP entity (request or response body).

Common Entity Implementations

public class StringEntity implements HttpEntity;
public class ByteArrayEntity implements HttpEntity;
public class FileEntity implements HttpEntity;
public class InputStreamEntity implements HttpEntity;
public class UrlEncodedFormEntity implements HttpEntity;

Common implementations of HttpEntity for different data types.

EntityBuilder

public class EntityBuilder {
    public static EntityBuilder create();
    public EntityBuilder setText(String text);
    public EntityBuilder setBinary(byte[] binary);
    public EntityBuilder setStream(InputStream stream);
    public EntityBuilder setParameters(List<NameValuePair> parameters);
    public EntityBuilder setParameters(NameValuePair... parameters);
    public EntityBuilder setFile(File file);
    public EntityBuilder setContentType(ContentType contentType);
    public EntityBuilder setContentEncoding(String contentEncoding);
    public EntityBuilder chunked();
    public EntityBuilder gzipCompress();
    public HttpEntity build();
}

Builder for creating HTTP entities with different content types and encoding options.

HttpEntity entity = EntityBuilder.create()
    .setText("{\"name\":\"John\",\"age\":30}")
    .setContentType(ContentType.APPLICATION_JSON)
    .build();

HttpPost httpPost = new HttpPost("https://api.example.com/users");
httpPost.setEntity(entity);

Install with Tessl CLI

npx tessl i tessl/maven-org-apache-httpcomponents--httpclient

docs

authentication.md

client-configuration.md

connection-management.md

cookie-management.md

http-methods.md

index.md

response-handling.md

tile.json