Project Alice
Loading...
Searching...
No Matches
httplib Namespace Reference

Namespaces

namespace  detail
 

Classes

class  Client
 
class  ClientImpl
 
class  ContentReader
 
class  DataSink
 
struct  MultipartFormData
 
struct  MultipartFormDataProvider
 
struct  Request
 
struct  Response
 
class  Result
 
class  Server
 
class  Stream
 
class  TaskQueue
 
class  ThreadPool
 

Typedefs

using Headers = std::unordered_multimap< std::string, std::string, detail::case_ignore::hash, detail::case_ignore::equal_to >
 
using Params = std::multimap< std::string, std::string >
 
using Match = std::smatch
 
using Progress = std::function< bool(uint64_t current, uint64_t total)>
 
using ResponseHandler = std::function< bool(const Response &response)>
 
using MultipartFormDataItems = std::vector< MultipartFormData >
 
using MultipartFormDataMap = std::multimap< std::string, MultipartFormData >
 
using ContentProvider = std::function< bool(size_t offset, size_t length, DataSink &sink)>
 
using ContentProviderWithoutLength = std::function< bool(size_t offset, DataSink &sink)>
 
using ContentProviderResourceReleaser = std::function< void(bool success)>
 
using MultipartFormDataProviderItems = std::vector< MultipartFormDataProvider >
 
using ContentReceiverWithProgress = std::function< bool(const char *data, size_t data_length, uint64_t offset, uint64_t total_length)>
 
using ContentReceiver = std::function< bool(const char *data, size_t data_length)>
 
using MultipartContentHeader = std::function< bool(const MultipartFormData &file)>
 
using Range = std::pair< ssize_t, ssize_t >
 
using Ranges = std::vector< Range >
 
using Logger = std::function< void(const Request &, const Response &)>
 
using SocketOptions = std::function< void(socket_t sock)>
 

Enumerations

enum  StatusCode {
  Continue_100 = 100 , SwitchingProtocol_101 = 101 , Processing_102 = 102 , EarlyHints_103 = 103 ,
  OK_200 = 200 , Created_201 = 201 , Accepted_202 = 202 , NonAuthoritativeInformation_203 = 203 ,
  NoContent_204 = 204 , ResetContent_205 = 205 , PartialContent_206 = 206 , MultiStatus_207 = 207 ,
  AlreadyReported_208 = 208 , IMUsed_226 = 226 , MultipleChoices_300 = 300 , MovedPermanently_301 = 301 ,
  Found_302 = 302 , SeeOther_303 = 303 , NotModified_304 = 304 , UseProxy_305 = 305 ,
  unused_306 = 306 , TemporaryRedirect_307 = 307 , PermanentRedirect_308 = 308 , BadRequest_400 = 400 ,
  Unauthorized_401 = 401 , PaymentRequired_402 = 402 , Forbidden_403 = 403 , NotFound_404 = 404 ,
  MethodNotAllowed_405 = 405 , NotAcceptable_406 = 406 , ProxyAuthenticationRequired_407 = 407 , RequestTimeout_408 = 408 ,
  Conflict_409 = 409 , Gone_410 = 410 , LengthRequired_411 = 411 , PreconditionFailed_412 = 412 ,
  PayloadTooLarge_413 = 413 , UriTooLong_414 = 414 , UnsupportedMediaType_415 = 415 , RangeNotSatisfiable_416 = 416 ,
  ExpectationFailed_417 = 417 , ImATeapot_418 = 418 , MisdirectedRequest_421 = 421 , UnprocessableContent_422 = 422 ,
  Locked_423 = 423 , FailedDependency_424 = 424 , TooEarly_425 = 425 , UpgradeRequired_426 = 426 ,
  PreconditionRequired_428 = 428 , TooManyRequests_429 = 429 , RequestHeaderFieldsTooLarge_431 = 431 , UnavailableForLegalReasons_451 = 451 ,
  InternalServerError_500 = 500 , NotImplemented_501 = 501 , BadGateway_502 = 502 , ServiceUnavailable_503 = 503 ,
  GatewayTimeout_504 = 504 , HttpVersionNotSupported_505 = 505 , VariantAlsoNegotiates_506 = 506 , InsufficientStorage_507 = 507 ,
  LoopDetected_508 = 508 , NotExtended_510 = 510 , NetworkAuthenticationRequired_511 = 511
}
 
enum class  Error {
  Success = 0 , Unknown , Connection , BindIPAddress ,
  Read , Write , ExceedRedirectCount , Canceled ,
  SSLConnection , SSLLoadingCerts , SSLServerVerification , SSLServerHostnameVerification ,
  UnsupportedMultipartBoundaryChars , Compression , ConnectionTimeout , ProxyConnection ,
  SSLPeerCouldBeClosed_
}
 

Functions

void default_socket_options (socket_t sock)
 
const char * status_message (int status)
 
std::string get_bearer_token_auth (const Request &req)
 
std::string to_string (Error error)
 
std::ostream & operator<< (std::ostream &os, const Error &obj)
 
std::string hosted_at (const std::string &hostname)
 
void hosted_at (const std::string &hostname, std::vector< std::string > &addrs)
 
std::string append_query_params (const std::string &path, const Params &params)
 
std::pair< std::string, std::string > make_range_header (const Ranges &ranges)
 
std::pair< std::string, std::string > make_basic_authentication_header (const std::string &username, const std::string &password, bool is_proxy=false)
 
std::pair< std::string, std::string > make_bearer_token_authentication_header (const std::string &token, bool is_proxy=false)
 

Typedef Documentation

◆ ContentProvider

using httplib::ContentProvider = typedef std::function<bool(size_t offset, size_t length, DataSink &sink)>

Definition at line 562 of file httplib.h.

◆ ContentProviderResourceReleaser

using httplib::ContentProviderResourceReleaser = typedef std::function<void(bool success)>

Definition at line 568 of file httplib.h.

◆ ContentProviderWithoutLength

using httplib::ContentProviderWithoutLength = typedef std::function<bool(size_t offset, DataSink &sink)>

Definition at line 565 of file httplib.h.

◆ ContentReceiver

using httplib::ContentReceiver = typedef std::function<bool(const char *data, size_t data_length)>

Definition at line 582 of file httplib.h.

◆ ContentReceiverWithProgress

using httplib::ContentReceiverWithProgress = typedef std::function<bool(const char *data, size_t data_length, uint64_t offset, uint64_t total_length)>

Definition at line 578 of file httplib.h.

◆ Headers

using httplib::Headers = typedef std::unordered_multimap<std::string, std::string, detail::case_ignore::hash, detail::case_ignore::equal_to>

Definition at line 508 of file httplib.h.

◆ Logger

using httplib::Logger = typedef std::function<void(const Request &, const Response &)>

Definition at line 838 of file httplib.h.

◆ Match

using httplib::Match = typedef std::smatch

Definition at line 513 of file httplib.h.

◆ MultipartContentHeader

using httplib::MultipartContentHeader = typedef std::function<bool(const MultipartFormData &file)>

Definition at line 585 of file httplib.h.

◆ MultipartFormDataItems

using httplib::MultipartFormDataItems = typedef std::vector<MultipartFormData>

Definition at line 526 of file httplib.h.

◆ MultipartFormDataMap

using httplib::MultipartFormDataMap = typedef std::multimap<std::string, MultipartFormData>

Definition at line 527 of file httplib.h.

◆ MultipartFormDataProviderItems

Definition at line 576 of file httplib.h.

◆ Params

using httplib::Params = typedef std::multimap<std::string, std::string>

Definition at line 512 of file httplib.h.

◆ Progress

using httplib::Progress = typedef std::function<bool(uint64_t current, uint64_t total)>

Definition at line 515 of file httplib.h.

◆ Range

using httplib::Range = typedef std::pair<ssize_t, ssize_t>

Definition at line 611 of file httplib.h.

◆ Ranges

using httplib::Ranges = typedef std::vector<Range>

Definition at line 612 of file httplib.h.

◆ ResponseHandler

using httplib::ResponseHandler = typedef std::function<bool(const Response &response)>

Definition at line 518 of file httplib.h.

◆ SocketOptions

using httplib::SocketOptions = typedef std::function<void(socket_t sock)>

Definition at line 840 of file httplib.h.

Enumeration Type Documentation

◆ Error

enum class httplib::Error
strong
Enumerator
Success 
Unknown 
Connection 
BindIPAddress 
Read 
Write 
ExceedRedirectCount 
Canceled 
SSLConnection 
SSLLoadingCerts 
SSLServerVerification 
SSLServerHostnameVerification 
UnsupportedMultipartBoundaryChars 
Compression 
ConnectionTimeout 
ProxyConnection 
SSLPeerCouldBeClosed_ 

Definition at line 1138 of file httplib.h.

◆ StatusCode

Enumerator
Continue_100 
SwitchingProtocol_101 
Processing_102 
EarlyHints_103 
OK_200 
Created_201 
Accepted_202 
NonAuthoritativeInformation_203 
NoContent_204 
ResetContent_205 
PartialContent_206 
MultiStatus_207 
AlreadyReported_208 
IMUsed_226 
MultipleChoices_300 
MovedPermanently_301 
Found_302 
SeeOther_303 
NotModified_304 
UseProxy_305 
unused_306 
TemporaryRedirect_307 
PermanentRedirect_308 
BadRequest_400 
Unauthorized_401 
PaymentRequired_402 
Forbidden_403 
NotFound_404 
MethodNotAllowed_405 
NotAcceptable_406 
ProxyAuthenticationRequired_407 
RequestTimeout_408 
Conflict_409 
Gone_410 
LengthRequired_411 
PreconditionFailed_412 
PayloadTooLarge_413 
UriTooLong_414 
UnsupportedMediaType_415 
RangeNotSatisfiable_416 
ExpectationFailed_417 
ImATeapot_418 
MisdirectedRequest_421 
UnprocessableContent_422 
Locked_423 
FailedDependency_424 
TooEarly_425 
UpgradeRequired_426 
PreconditionRequired_428 
TooManyRequests_429 
RequestHeaderFieldsTooLarge_431 
UnavailableForLegalReasons_451 
InternalServerError_500 
NotImplemented_501 
BadGateway_502 
ServiceUnavailable_503 
GatewayTimeout_504 
HttpVersionNotSupported_505 
VariantAlsoNegotiates_506 
InsufficientStorage_507 
LoopDetected_508 
NotExtended_510 
NetworkAuthenticationRequired_511 

Definition at line 433 of file httplib.h.

Function Documentation

◆ append_query_params()

std::string httplib::append_query_params ( const std::string &  path,
const Params params 
)
inline

Definition at line 5636 of file httplib.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ default_socket_options()

void httplib::default_socket_options ( socket_t  sock)
inline

Definition at line 2046 of file httplib.h.

◆ get_bearer_token_auth()

std::string httplib::get_bearer_token_auth ( const Request req)
inline

Definition at line 2140 of file httplib.h.

◆ hosted_at() [1/2]

std::string httplib::hosted_at ( const std::string &  hostname)
inline

Definition at line 5599 of file httplib.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ hosted_at() [2/2]

void httplib::hosted_at ( const std::string &  hostname,
std::vector< std::string > &  addrs 
)
inline

Definition at line 5606 of file httplib.h.

Here is the call graph for this function:

◆ make_basic_authentication_header()

std::pair< std::string, std::string > httplib::make_basic_authentication_header ( const std::string &  username,
const std::string &  password,
bool  is_proxy = false 
)
inline

Definition at line 5661 of file httplib.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_bearer_token_authentication_header()

std::pair< std::string, std::string > httplib::make_bearer_token_authentication_header ( const std::string &  token,
bool  is_proxy = false 
)
inline

Definition at line 5669 of file httplib.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ make_range_header()

std::pair< std::string, std::string > httplib::make_range_header ( const Ranges ranges)
inline

Definition at line 5647 of file httplib.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator<<()

std::ostream & httplib::operator<< ( std::ostream &  os,
const Error obj 
)
inline

Definition at line 2199 of file httplib.h.

Here is the call graph for this function:

◆ status_message()

const char * httplib::status_message ( int  status)
inline

Definition at line 2064 of file httplib.h.

Here is the caller graph for this function:

◆ to_string()

std::string httplib::to_string ( Error  error)
inline

Definition at line 2173 of file httplib.h.

Here is the caller graph for this function: