userver: clients::http Namespace Reference
Loading...
Searching...
No Matches
clients::http Namespace Reference

Detailed Description

HTTP client helpers.

Classes

class  AuthFailedException
 
class  BadArgumentException
 
class  BaseCodeException
 Exception with string and error_code. More...
 
class  BaseException
 Exception with string. More...
 
class  CancelException
 
class  Client
 HTTP client that returns a HTTP request builder from CreateRequest(). More...
 
struct  ClientSettings
 
class  ConnectTo
 CURLOPT_CONNECT_TO argument for curl's connect_to(). More...
 
struct  DeadlinePropagationConfig
 
class  DNSProblemException
 
class  Form
 
class  HttpClientException
 
class  HttpException
 Base class for HttpClientException and HttpServerException. More...
 
class  HttpServerException
 
struct  LocalStats
 Represents all the local timings and statistics. More...
 
class  NetworkProblemException
 
class  Plugin
 Base class for HTTP Client plugins. More...
 
class  PluginRequest
 Auxiliary entity that allows editing request to a client from plugins. More...
 
class  Request
 Class for creating and performing new http requests. More...
 
class  RequestTracingEditor
 Auxiliary entity that allows editing request to a client from plugins. More...
 
class  Response
 Class that will be returned for successful request. More...
 
class  ResponseFuture
 Allows to perform a request concurrently with other work without creating an extra coroutine for waiting. More...
 
class  SSLException
 
class  StreamedResponse
 HTTP response for streamed API. More...
 
class  TechnicalError
 
class  TimeoutException
 
class  TooManyRedirectsException
 

Typedefs

using Headers = ::http::headers::HeaderMap
 Headers container type.
 

Enumerations

enum class  CancellationPolicy {
  kIgnore ,
  kCancel
}
 
enum class  HttpMethod {
  kGet ,
  kPost ,
  kHead ,
  kPut ,
  kDelete ,
  kPatch ,
  kOptions
}
 HTTP request method. More...
 
enum class  HttpVersion {
  kDefault ,
  k10 ,
  k11 ,
  k2 ,
  k2Tls ,
  k2PriorKnowledge
}
 HTTP version to use. More...
 
enum class  HttpAuthType {
  kBasic ,
  kDigest ,
  kDigestIE ,
  kNegotiate ,
  kNtlm ,
  kNtlmWb ,
  kAny ,
  kAnySafe
}
 
enum class  ProxyAuthType {
  kBasic ,
  kDigest ,
  kDigestIE ,
  kBearer ,
  kNegotiate ,
  kNtlm ,
  kNtlmWb ,
  kAny ,
  kAnySafe
}
 
enum  Status : uint16_t {
  Invalid = 0 ,
  Continue = 100 ,
  SwitchingProtocols = 101 ,
  Processing = 102 ,
  EarlyHints = 103 ,
  OK = 200 ,
  Created = 201 ,
  Accepted = 202 ,
  NonAuthoritativeInformation = 203 ,
  NoContent = 204 ,
  ResetContent = 205 ,
  PartialContent = 206 ,
  MultiStatus = 207 ,
  AlreadyReported = 208 ,
  ThisIsFine = 218 ,
  IMUsed = 226 ,
  MultipleChoices = 300 ,
  MovedPermanently = 301 ,
  Found = 302 ,
  SeeOther = 303 ,
  NotModified = 304 ,
  UseProxy = 305 ,
  SwitchProxy = 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 ,
  PageExpired = 419 ,
  MethodFailure = 420 ,
  MisdirectedRequest = 421 ,
  UnprocessableEntity = 422 ,
  Locked = 423 ,
  FailedDependency = 424 ,
  TooEarly = 425 ,
  UpgradeRequired = 426 ,
  PreconditionRequired = 428 ,
  TooManyRequests = 429 ,
  RequestHeaderFieldsTooLarge = 431 ,
  NginxNoResponse = 444 ,
  UnavailableForLegalReasons = 451 ,
  NginxRequestHeaderTooLarge = 494 ,
  NginxSSLCertificateError = 495 ,
  NginxSSLCertificateRequired = 496 ,
  NginxHTTPRequestSenttoHTTPSPort = 497 ,
  NginxClientClosedRequest = 499 ,
  InternalServerError = 500 ,
  NotImplemented = 501 ,
  BadGateway = 502 ,
  ServiceUnavailable = 503 ,
  GatewayTimeout = 504 ,
  HttpVersionNotSupported = 505 ,
  VariantAlsoNegotiates = 506 ,
  InsufficientStorage = 507 ,
  LoopDetected = 508 ,
  BandwidthLimitExceeded = 509 ,
  NotExtended = 510 ,
  NetworkAuthenticationRequired = 511 ,
  WebServerIsDown = 520 ,
  ConnectionTimedOut = 522 ,
  OriginIsUnreachable = 523 ,
  TimeoutOccurred = 524 ,
  SslHandshakeFailed = 525 ,
  InvalidSslCertificate = 526
}
 https://en.wikipedia.org/wiki/List_of_HTTP_status_codes More...
 

Functions

CancellationPolicy Parse (yaml_config::YamlConfig value, formats::parse::To< CancellationPolicy >)
 
ClientSettings Parse (const yaml_config::YamlConfig &value, formats::parse::To< ClientSettings >)
 
std::exception_ptr PrepareException (std::error_code ec, std::string_view url, const LocalStats &stats)
 map error_code to exceptions
 
std::string_view ToStringView (HttpMethod method)
 
ProxyAuthType ProxyAuthTypeFromString (const std::string &auth_name)
 
std::ostream & operator<< (std::ostream &os, Status s)
 

Typedef Documentation

◆ Headers

Headers container type.

Definition at line 116 of file response.hpp.

Enumeration Type Documentation

◆ CancellationPolicy

enum class clients::http::CancellationPolicy
strong

Definition at line 26 of file config.hpp.

◆ HttpAuthType

enum class clients::http::HttpAuthType
strong
Enumerator
kBasic 

"basic"

kDigest 

"digest"

kDigestIE 

"digest_ie"

kNegotiate 

"negotiate"

kNtlm 

"ntlm"

kNtlmWb 

"ntlm_wb"

kAny 

"any"

kAnySafe 

"any_safe"

Definition at line 61 of file request.hpp.

◆ HttpMethod

enum class clients::http::HttpMethod
strong

HTTP request method.

Definition at line 47 of file request.hpp.

◆ HttpVersion

enum class clients::http::HttpVersion
strong

HTTP version to use.

Enumerator
kDefault 

unspecified version

k10 

HTTP/1.0 only.

k11 

HTTP/1.1 only.

k2 

HTTP/2 with fallback to HTTP/1.1.

k2Tls 

HTTP/2 over TLS only, otherwise (no TLS or h2) HTTP/1.1.

k2PriorKnowledge 

HTTP/2 only (without Upgrade)

Definition at line 52 of file request.hpp.

◆ ProxyAuthType

enum class clients::http::ProxyAuthType
strong
Enumerator
kBasic 

"basic"

kDigest 

"digest"

kDigestIE 

"digest_ie"

kBearer 

"bearer"

kNegotiate 

"negotiate"

kNtlm 

"ntlm"

kNtlmWb 

"ntlm_wb"

kAny 

"any"

kAnySafe 

"any_safe"

Definition at line 72 of file request.hpp.

◆ Status