http-client
HTTP client bindings for ESP32 Provides comprehensive HTTP client functionality for making web requests
- AssemblyScript
- Zig
- Rust
- TinyGo
- C
- C++
export enum HttpMethod {
Get = 0,
Post = 1,
Put = 2,
Delete = 3,
Head = 4,
Patch = 5,
Options = 6
}
export enum HttpError {
Ok = 0,
InvalidArg = 1,
ConnectFail = 2,
NoMemory = 3,
Timeout = 4,
InvalidResponse = 5
}
// @ts-ignore
@external("http_client", "http_client_config_create")
export declare function httpClientConfigCreate(): u32;
// @ts-ignore
@external("http_client", "http_client_config_set_method")
export declare function httpClientConfigSetMethod(config: u32, method: i32): void;
// @ts-ignore
@external("http_client", "http_client_config_set_url")
export declare function httpClientConfigSetUrl(config: u32, url: u32): void;
// @ts-ignore
@external("http_client", "http_client_config_destroy")
export declare function httpClientConfigDestroy(config: u32): void;
// @ts-ignore
@external("http_client", "http_client_init")
export declare function httpClientInit(config: u32): u32;
// @ts-ignore
@external("http_client", "http_client_set_header")
export declare function httpClientSetHeader(client: i32, key: u32, value: u32): i32;
// @ts-ignore
@external("http_client", "http_client_open")
export declare function httpClientOpen(client: i32, len: i32): i32;
// @ts-ignore
@external("http_client", "http_client_write")
export declare function httpClientWrite(client: i32, buffer: i32, len: i32): i32;
// @ts-ignore
@external("http_client", "http_client_perform")
export declare function httpClientPerform(client: i32): i32;
// @ts-ignore
@external("http_client", "http_client_get_content_length")
export declare function httpClientGetContentLength(client: i32): i32;
// @ts-ignore
@external("http_client", "http_client_cleanup")
export declare function httpClientCleanup(client: i32): i32;
// @ts-ignore
@external("http_client", "http_client_set_post_field")
export declare function httpClientSetPostField(client: i32, data: i32, len: i32): i32;
// @ts-ignore
@external("http_client", "http_client_fetch_headers")
export declare function httpClientFetchHeaders(client: i32): i32;
// @ts-ignore
@external("http_client", "http_client_read_response")
export declare function httpClientReadResponse(client: i32, buffer: i32, len: i32): i32;
// @ts-ignore
@external("http_client", "http_client_get_status_code")
export declare function httpClientGetStatusCode(client: i32): i32;
pub const HttpMethod = enum(u32) {
get = 0,
post = 1,
put = 2,
delete = 3,
head = 4,
patch = 5,
options = 6
};
pub const HttpError = enum(u32) {
ok = 0,
invalidArg = 1,
connectFail = 2,
noMemory = 3,
timeout = 4,
invalidResponse = 5
};
pub extern "http_client" fn http_client_config_create() u32;
pub extern "http_client" fn http_client_config_set_method(config: u32, method: i32) void;
pub extern "http_client" fn http_client_config_set_url(config: u32, url: u32) void;
pub extern "http_client" fn http_client_config_destroy(config: u32) void;
pub extern "http_client" fn http_client_init(config: u32) u32;
pub extern "http_client" fn http_client_set_header(client: i32, key: u32, value: u32) i32;
pub extern "http_client" fn http_client_open(client: i32, len: i32) i32;
pub extern "http_client" fn http_client_write(client: i32, buffer: i32, len: i32) i32;
pub extern "http_client" fn http_client_perform(client: i32) i32;
pub extern "http_client" fn http_client_get_content_length(client: i32) i32;
pub extern "http_client" fn http_client_cleanup(client: i32) i32;
pub extern "http_client" fn http_client_set_post_field(client: i32, data: i32, len: i32) i32;
pub extern "http_client" fn http_client_fetch_headers(client: i32) i32;
pub extern "http_client" fn http_client_read_response(client: i32, buffer: i32, len: i32) i32;
pub extern "http_client" fn http_client_get_status_code(client: i32) i32;
#[derive(Debug, Clone, Copy)]
#[repr(u32)]
pub enum HttpMethod {
Get = 0,
Post = 1,
Put = 2,
Delete = 3,
Head = 4,
Patch = 5,
Options = 6
}
#[derive(Debug, Clone, Copy)]
#[repr(u32)]
pub enum HttpError {
Ok = 0,
InvalidArg = 1,
ConnectFail = 2,
NoMemory = 3,
Timeout = 4,
InvalidResponse = 5
}
#[link(wasm_import_module = "http_client")]
extern "C" {
#[link_name = "http_client_config_create"]
fn unsafe_http_client_config_create() -> u32;
#[link_name = "http_client_config_set_method"]
fn unsafe_http_client_config_set_method(config: u32, method: i32);
#[link_name = "http_client_config_set_url"]
fn unsafe_http_client_config_set_url(config: u32, url: u32);
#[link_name = "http_client_config_destroy"]
fn unsafe_http_client_config_destroy(config: u32);
#[link_name = "http_client_init"]
fn unsafe_http_client_init(config: u32) -> u32;
#[link_name = "http_client_set_header"]
fn unsafe_http_client_set_header(client: i32, key: u32, value: u32) -> i32;
#[link_name = "http_client_open"]
fn unsafe_http_client_open(client: i32, len: i32) -> i32;
#[link_name = "http_client_write"]
fn unsafe_http_client_write(client: i32, buffer: i32, len: i32) -> i32;
#[link_name = "http_client_perform"]
fn unsafe_http_client_perform(client: i32) -> i32;
#[link_name = "http_client_get_content_length"]
fn unsafe_http_client_get_content_length(client: i32) -> i32;
#[link_name = "http_client_cleanup"]
fn unsafe_http_client_cleanup(client: i32) -> i32;
#[link_name = "http_client_set_post_field"]
fn unsafe_http_client_set_post_field(client: i32, data: i32, len: i32) -> i32;
#[link_name = "http_client_fetch_headers"]
fn unsafe_http_client_fetch_headers(client: i32) -> i32;
#[link_name = "http_client_read_response"]
fn unsafe_http_client_read_response(client: i32, buffer: i32, len: i32) -> i32;
#[link_name = "http_client_get_status_code"]
fn unsafe_http_client_get_status_code(client: i32) -> i32;
}
pub fn http_client_config_create() -> u32 {
unsafe {
return unsafe_http_client_config_create();
}
}
pub fn http_client_config_set_method(config: u32, method: i32) {
unsafe {
unsafe_http_client_config_set_method(config, method);
}
}
pub fn http_client_config_set_url(config: u32, url: u32) {
unsafe {
unsafe_http_client_config_set_url(config, url);
}
}
pub fn http_client_config_destroy(config: u32) {
unsafe {
unsafe_http_client_config_destroy(config);
}
}
pub fn http_client_init(config: u32) -> u32 {
unsafe {
return unsafe_http_client_init(config);
}
}
pub fn http_client_set_header(client: i32, key: u32, value: u32) -> i32 {
unsafe {
return unsafe_http_client_set_header(client, key, value);
}
}
pub fn http_client_open(client: i32, len: i32) -> i32 {
unsafe {
return unsafe_http_client_open(client, len);
}
}
pub fn http_client_write(client: i32, buffer: i32, len: i32) -> i32 {
unsafe {
return unsafe_http_client_write(client, buffer, len);
}
}
pub fn http_client_perform(client: i32) -> i32 {
unsafe {
return unsafe_http_client_perform(client);
}
}
pub fn http_client_get_content_length(client: i32) -> i32 {
unsafe {
return unsafe_http_client_get_content_length(client);
}
}
pub fn http_client_cleanup(client: i32) -> i32 {
unsafe {
return unsafe_http_client_cleanup(client);
}
}
pub fn http_client_set_post_field(client: i32, data: i32, len: i32) -> i32 {
unsafe {
return unsafe_http_client_set_post_field(client, data, len);
}
}
pub fn http_client_fetch_headers(client: i32) -> i32 {
unsafe {
return unsafe_http_client_fetch_headers(client);
}
}
pub fn http_client_read_response(client: i32, buffer: i32, len: i32) -> i32 {
unsafe {
return unsafe_http_client_read_response(client, buffer, len);
}
}
pub fn http_client_get_status_code(client: i32) -> i32 {
unsafe {
return unsafe_http_client_get_status_code(client);
}
}
package http-client
type HttpMethod uint32
const (
Get HttpMethod = 0
Post HttpMethod = 1
Put HttpMethod = 2
Delete HttpMethod = 3
Head HttpMethod = 4
Patch HttpMethod = 5
Options HttpMethod = 6
)
type HttpError uint32
const (
Ok HttpError = 0
InvalidArg HttpError = 1
ConnectFail HttpError = 2
NoMemory HttpError = 3
Timeout HttpError = 4
InvalidResponse HttpError = 5
)
//go:wasmimport http_client http_client_config_create
func HttpClientConfigCreate() uint32;
//go:wasmimport http_client http_client_config_set_method
func HttpClientConfigSetMethod(Config uint32, Method int32);
//go:wasmimport http_client http_client_config_set_url
func HttpClientConfigSetUrl(Config uint32, Url uint32);
//go:wasmimport http_client http_client_config_destroy
func HttpClientConfigDestroy(Config uint32);
//go:wasmimport http_client http_client_init
func HttpClientInit(Config uint32) uint32;
//go:wasmimport http_client http_client_set_header
func HttpClientSetHeader(Client int32, Key uint32, Value uint32) int32;
//go:wasmimport http_client http_client_open
func HttpClientOpen(Client int32, Len int32) int32;
//go:wasmimport http_client http_client_write
func HttpClientWrite(Client int32, Buffer int32, Len int32) int32;
//go:wasmimport http_client http_client_perform
func HttpClientPerform(Client int32) int32;
//go:wasmimport http_client http_client_get_content_length
func HttpClientGetContentLength(Client int32) int32;
//go:wasmimport http_client http_client_cleanup
func HttpClientCleanup(Client int32) int32;
//go:wasmimport http_client http_client_set_post_field
func HttpClientSetPostField(Client int32, Data int32, Len int32) int32;
//go:wasmimport http_client http_client_fetch_headers
func HttpClientFetchHeaders(Client int32) int32;
//go:wasmimport http_client http_client_read_response
func HttpClientReadResponse(Client int32, Buffer int32, Len int32) int32;
//go:wasmimport http_client http_client_get_status_code
func HttpClientGetStatusCode(Client int32) int32;
typedef enum {
HTTP_METHOD_GET,
HTTP_METHOD_POST,
HTTP_METHOD_PUT,
HTTP_METHOD_DELETE,
HTTP_METHOD_HEAD,
HTTP_METHOD_PATCH,
HTTP_METHOD_OPTIONS
} http_method_t;
typedef enum {
HTTP_ERROR_OK,
HTTP_ERROR_INVALID_ARG,
HTTP_ERROR_CONNECT_FAIL,
HTTP_ERROR_NO_MEMORY,
HTTP_ERROR_TIMEOUT,
HTTP_ERROR_INVALID_RESPONSE
} http_error_t;
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_config_create")))
extern unsigned int http_client_config_create();
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_config_set_method")))
extern void http_client_config_set_method(unsigned int config, int method);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_config_set_url")))
extern void http_client_config_set_url(unsigned int config, unsigned int url);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_config_destroy")))
extern void http_client_config_destroy(unsigned int config);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_init")))
extern unsigned int http_client_init(unsigned int config);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_set_header")))
extern int http_client_set_header(int client, unsigned int key, unsigned int value);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_open")))
extern int http_client_open(int client, int len);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_write")))
extern int http_client_write(int client, int buffer, int len);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_perform")))
extern int http_client_perform(int client);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_get_content_length")))
extern int http_client_get_content_length(int client);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_cleanup")))
extern int http_client_cleanup(int client);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_set_post_field")))
extern int http_client_set_post_field(int client, int data, int len);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_fetch_headers")))
extern int http_client_fetch_headers(int client);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_read_response")))
extern int http_client_read_response(int client, int buffer, int len);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_get_status_code")))
extern int http_client_get_status_code(int client);
typedef enum {
HTTP_METHOD_GET,
HTTP_METHOD_POST,
HTTP_METHOD_PUT,
HTTP_METHOD_DELETE,
HTTP_METHOD_HEAD,
HTTP_METHOD_PATCH,
HTTP_METHOD_OPTIONS
} http_method_t;
typedef enum {
HTTP_ERROR_OK,
HTTP_ERROR_INVALID_ARG,
HTTP_ERROR_CONNECT_FAIL,
HTTP_ERROR_NO_MEMORY,
HTTP_ERROR_TIMEOUT,
HTTP_ERROR_INVALID_RESPONSE
} http_error_t;
extern "C" {
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_config_create")))
extern unsigned int http_client_config_create();
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_config_set_method")))
extern void http_client_config_set_method(unsigned int config, int method);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_config_set_url")))
extern void http_client_config_set_url(unsigned int config, unsigned int url);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_config_destroy")))
extern void http_client_config_destroy(unsigned int config);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_init")))
extern unsigned int http_client_init(unsigned int config);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_set_header")))
extern int http_client_set_header(int client, unsigned int key, unsigned int value);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_open")))
extern int http_client_open(int client, int len);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_write")))
extern int http_client_write(int client, int buffer, int len);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_perform")))
extern int http_client_perform(int client);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_get_content_length")))
extern int http_client_get_content_length(int client);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_cleanup")))
extern int http_client_cleanup(int client);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_set_post_field")))
extern int http_client_set_post_field(int client, int data, int len);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_fetch_headers")))
extern int http_client_fetch_headers(int client);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_read_response")))
extern int http_client_read_response(int client, int buffer, int len);
__attribute__((import_module("http_client")))
__attribute__((import_name("http_client_get_status_code")))
extern int http_client_get_status_code(int client);
}