25#ifndef DETERMINISTICESPASYNCWEBSERVER_HTTP_CLIENT_H
26#define DETERMINISTICESPASYNCWEBSERVER_HTTP_CLIENT_H
32#if DETWS_ENABLE_HTTP_CLIENT
35enum class HttpClientError : int32_t
37 HTTP_CLIENT_ERR_URL = -1,
38 HTTP_CLIENT_ERR_DNS = -2,
39 HTTP_CLIENT_ERR_CONNECT = -3,
40 HTTP_CLIENT_ERR_TIMEOUT = -4,
41 HTTP_CLIENT_ERR_SEND = -5,
42 HTTP_CLIENT_ERR_RESPONSE = -6,
43 HTTP_CLIENT_ERR_TLS = -7,
47struct HttpClientResult
66bool http_client_parse_url(
const char *url,
bool *is_https,
char *host,
size_t host_cap, uint16_t *port,
char *path,
77size_t http_client_build_request(
const char *method,
const char *host, uint16_t port,
const char *path,
78 const char *content_type,
const uint8_t *body,
size_t body_len,
char *out,
size_t cap);
93int http_client_parse_response(uint8_t *buf,
size_t len,
size_t *body_off,
size_t *body_len);
100int http_get(
const char *url, HttpClientResult *out);
106int http_post(
const char *url,
const char *content_type,
const uint8_t *body,
size_t body_len, HttpClientResult *out);
116void http_client_set_ca(
const uint8_t *ca,
size_t ca_len);
119void http_client_set_pin(
const uint8_t sha256[32]);
122void http_client_clear_verify();
User-facing configuration for DeterministicESPAsyncWebServer.