CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-dev-langchain4j--langchain4j-http-client

HTTP client abstraction for LangChain4j with synchronous/asynchronous execution and Server-Sent Events (SSE) streaming support

Overview
Eval results
Files

quick-start.mddocs/

Quick Start Guide

Basic Synchronous Request

import dev.langchain4j.http.client.*;
import java.time.Duration;

// Load HTTP client via SPI
HttpClient client = HttpClientBuilderLoader.loadHttpClientBuilder()
    .connectTimeout(Duration.ofSeconds(10))
    .readTimeout(Duration.ofSeconds(30))
    .build();

// Build and execute request
HttpRequest request = HttpRequest.builder()
    .method(HttpMethod.GET)
    .url("https://api.example.com/data")
    .addHeader("Accept", "application/json")
    .build();

SuccessfulHttpResponse response = client.execute(request);
System.out.println("Status: " + response.statusCode());
System.out.println("Body: " + response.body());

POST Request with JSON

HttpRequest request = HttpRequest.builder()
    .method(HttpMethod.POST)
    .url("https://api.example.com/users")
    .addHeader("Content-Type", "application/json")
    .addHeader("Authorization", "Bearer token123")
    .body("{\"name\":\"Alice\",\"email\":\"alice@example.com\"}")
    .build();

SuccessfulHttpResponse response = client.execute(request);

Request with Query Parameters

HttpRequest request = HttpRequest.builder()
    .method(HttpMethod.GET)
    .url("https://api.example.com/search")
    .addQueryParam("q", "search term")
    .addQueryParam("limit", "10")
    .build();

// URL becomes: https://api.example.com/search?q=search+term&limit=10

Server-Sent Events (SSE) Streaming

import dev.langchain4j.http.client.sse.*;

HttpRequest request = HttpRequest.builder()
    .method(HttpMethod.POST)
    .url("https://api.example.com/stream")
    .addHeader("Accept", "text/event-stream")
    .body("{\"prompt\":\"Hello\"}")
    .build();

client.execute(request, new ServerSentEventListener() {
    @Override
    public void onEvent(ServerSentEvent event) {
        System.out.println("Data: " + event.data());
    }

    @Override
    public void onError(Throwable throwable) {
        System.err.println("Error: " + throwable.getMessage());
    }

    @Override
    public void onClose() {
        System.out.println("Stream closed");
    }
});

Error Handling

import dev.langchain4j.exception.HttpException;

try {
    SuccessfulHttpResponse response = client.execute(request);
    System.out.println("Success: " + response.body());
} catch (HttpException e) {
    // 4XX or 5XX status codes
    System.err.println("HTTP error: " + e.getMessage());
} catch (RuntimeException e) {
    // Network errors, timeouts
    System.err.println("Request failed: " + e.getMessage());
}

Next Steps

  • API Reference: Core Interfaces | Request Building | SSE APIs
  • Detailed Guides: Synchronous Requests | SSE Streaming | Configuration
  • Examples: Common Patterns | Advanced Patterns

Install with Tessl CLI

npx tessl i tessl/maven-dev-langchain4j--langchain4j-http-client@1.11.0

docs

index.md

installation.md

quick-start.md

tile.json