CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-http3

A next generation HTTP client for Python 3 with HTTP/2 support, async/await capabilities, and requests-compatible API.

Pending
Overview
Eval results
Files

request-functions.mddocs/

Request Functions

High-level convenience functions for making HTTP requests without managing client instances. These functions provide a requests-compatible API with full support for all standard HTTP methods and modern features like HTTP/2, async capabilities, and comprehensive configuration options.

Each function creates a temporary client instance, makes the request, and cleans up automatically, making them ideal for one-off requests or simple scripts.

Capabilities

GET Requests

Performs HTTP GET requests for retrieving data from servers.

def get(url, *, params=None, headers=None, cookies=None, stream=False, auth=None, allow_redirects=True, cert=None, verify=True, timeout=None):
    """
    Sends a GET request.

    Parameters:
    - url (URLTypes): URL for the request
    - params (QueryParamTypes, optional): Query parameters to append to URL
    - headers (HeaderTypes, optional): HTTP headers to send
    - cookies (CookieTypes, optional): Cookies to send
    - stream (bool): If True, download response content as a stream
    - auth (AuthTypes, optional): Authentication credentials
    - allow_redirects (bool): Whether to follow redirects (default: True)
    - cert (CertTypes, optional): Client certificate for SSL
    - verify (VerifyTypes): SSL certificate verification (default: True)
    - timeout (TimeoutTypes, optional): Request timeout configuration

    Returns:
    Response: HTTP response object
    """

Usage Example:

import http3

# Simple GET request
response = http3.get('https://api.example.com/users')
print(response.json())

# GET with query parameters and headers
response = http3.get(
    'https://api.example.com/search',
    params={'q': 'python', 'limit': 10},
    headers={'Authorization': 'Bearer token'},
    timeout=30.0
)

POST Requests

Performs HTTP POST requests for sending data to servers, including support for JSON, form data, and file uploads.

def post(url, *, data=None, files=None, json=None, params=None, headers=None, cookies=None, stream=False, auth=None, allow_redirects=True, cert=None, verify=True, timeout=None):
    """
    Sends a POST request.

    Parameters:
    - url (URLTypes): URL for the request
    - data (RequestData, optional): Raw request body data
    - files (RequestFiles, optional): Files to upload (multipart/form-data)
    - json (Any, optional): JSON data to send (sets Content-Type to application/json)
    - params (QueryParamTypes, optional): Query parameters to append to URL
    - headers (HeaderTypes, optional): HTTP headers to send
    - cookies (CookieTypes, optional): Cookies to send
    - stream (bool): If True, download response content as a stream
    - auth (AuthTypes, optional): Authentication credentials
    - allow_redirects (bool): Whether to follow redirects (default: True)
    - cert (CertTypes, optional): Client certificate for SSL
    - verify (VerifyTypes): SSL certificate verification (default: True)
    - timeout (TimeoutTypes, optional): Request timeout configuration

    Returns:
    Response: HTTP response object
    """

Usage Example:

import http3

# POST with JSON data
response = http3.post(
    'https://api.example.com/users',
    json={'name': 'John', 'email': 'john@example.com'}
)

# POST with form data
response = http3.post(
    'https://example.com/login',
    data={'username': 'user', 'password': 'pass'}
)

# POST with file upload
with open('document.pdf', 'rb') as f:
    response = http3.post(
        'https://api.example.com/upload',
        files={'file': f}
    )

PUT Requests

Performs HTTP PUT requests for updating or creating resources on the server.

def put(url, *, data=None, files=None, json=None, params=None, headers=None, cookies=None, stream=False, auth=None, allow_redirects=True, cert=None, verify=True, timeout=None):
    """
    Sends a PUT request.

    Parameters: Same as post()

    Returns:
    Response: HTTP response object
    """

PATCH Requests

Performs HTTP PATCH requests for partial updates to resources.

def patch(url, *, data=None, files=None, json=None, params=None, headers=None, cookies=None, stream=False, auth=None, allow_redirects=True, cert=None, verify=True, timeout=None):
    """
    Sends a PATCH request.

    Parameters: Same as post()

    Returns:
    Response: HTTP response object
    """

DELETE Requests

Performs HTTP DELETE requests for removing resources from the server.

def delete(url, *, data=None, files=None, json=None, params=None, headers=None, cookies=None, stream=False, auth=None, allow_redirects=True, cert=None, verify=True, timeout=None):
    """
    Sends a DELETE request.

    Parameters: Same as post()

    Returns:
    Response: HTTP response object
    """

HEAD Requests

Performs HTTP HEAD requests to retrieve headers only (no response body).

def head(url, *, params=None, headers=None, cookies=None, stream=False, auth=None, allow_redirects=False, cert=None, verify=True, timeout=None):
    """
    Sends a HEAD request.

    Parameters:
    - url (URLTypes): URL for the request
    - params (QueryParamTypes, optional): Query parameters to append to URL
    - headers (HeaderTypes, optional): HTTP headers to send
    - cookies (CookieTypes, optional): Cookies to send
    - stream (bool): If True, download response content as a stream
    - auth (AuthTypes, optional): Authentication credentials
    - allow_redirects (bool): Whether to follow redirects (default: False)
    - cert (CertTypes, optional): Client certificate for SSL
    - verify (VerifyTypes): SSL certificate verification (default: True)
    - timeout (TimeoutTypes, optional): Request timeout configuration

    Returns:
    Response: HTTP response object (with empty body)
    """

OPTIONS Requests

Performs HTTP OPTIONS requests to query server capabilities and allowed methods.

def options(url, *, params=None, headers=None, cookies=None, stream=False, auth=None, allow_redirects=True, cert=None, verify=True, timeout=None):
    """
    Sends an OPTIONS request.

    Parameters: Same as get()

    Returns:
    Response: HTTP response object
    """

Generic Request Function

Performs HTTP requests with any method, providing maximum flexibility.

def request(method, url, *, params=None, data=None, files=None, json=None, headers=None, cookies=None, auth=None, timeout=None, allow_redirects=True, cert=None, verify=True, stream=False):
    """
    Sends a request with the given HTTP method.

    Parameters:
    - method (str): HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, etc.)
    - url (URLTypes): URL for the request
    - params (QueryParamTypes, optional): Query parameters to append to URL
    - data (RequestData, optional): Raw request body data
    - files (RequestFiles, optional): Files to upload (multipart/form-data)
    - json (Any, optional): JSON data to send
    - headers (HeaderTypes, optional): HTTP headers to send
    - cookies (CookieTypes, optional): Cookies to send
    - auth (AuthTypes, optional): Authentication credentials
    - timeout (TimeoutTypes, optional): Request timeout configuration
    - allow_redirects (bool): Whether to follow redirects (default: True)
    - cert (CertTypes, optional): Client certificate for SSL
    - verify (VerifyTypes): SSL certificate verification (default: True)
    - stream (bool): If True, download response content as a stream

    Returns:
    Response: HTTP response object
    """

Usage Example:

import http3

# Custom HTTP method
response = http3.request('PROPFIND', 'https://webdav.example.com/files/')

# Custom method with full configuration
response = http3.request(
    'PATCH',
    'https://api.example.com/users/123',
    json={'status': 'active'},
    headers={'Content-Type': 'application/json'},
    timeout=10.0
)

Common Parameters

All request functions support these common configuration parameters:

  • auth: HTTP authentication (Basic Auth tuple or callable)
  • timeout: Request timeout (float for all timeouts, or TimeoutConfig for granular control)
  • verify: SSL certificate verification (bool or path to CA bundle)
  • cert: Client SSL certificate (string path or tuple of cert/key paths)
  • allow_redirects: Whether to automatically follow HTTP redirects
  • stream: Enable streaming mode for large responses
  • headers: Custom HTTP headers to include in the request
  • cookies: Cookies to send with the request
  • params: URL query parameters

Error Handling

All request functions may raise these exceptions:

  • ConnectTimeout: Connection establishment timeout
  • ReadTimeout: Response reading timeout
  • WriteTimeout: Request sending timeout
  • TooManyRedirects: Exceeded maximum redirect limit
  • InvalidURL: Malformed URL provided
  • ProtocolError: HTTP protocol violation
  • DecodingError: Response content decoding failure

Install with Tessl CLI

npx tessl i tessl/pypi-http3

docs

clients.md

configuration.md

data-models.md

exceptions.md

index.md

models.md

request-functions.md

tile.json