11#ifndef OCTANE_API_CLIENT_INTERNAL_HTTP_CLIENT_H_
12#define OCTANE_API_CLIENT_INTERNAL_HTTP_CLIENT_H_
14#include <gtest/gtest_prod.h>
20#include "../error_response.h"
66 std::vector<std::uint8_t>
body;
109 std::vector<std::uint8_t>
body;
158 FRIEND_TEST(HttpClientTest, WriteCallback);
159 FRIEND_TEST(HttpClientTest, ReadCallback);
160 FRIEND_TEST(HttpClientTest, HeaderCallback);
161 FRIEND_TEST(HttpClientTest, MakeHttpResponseOk);
162 FRIEND_TEST(HttpClientTest, MakeHttpResponseErr);
175 std::string_view origin,
190 static size_t writeCallback(
char* buffer,
193 std::vector<std::uint8_t>* chunk);
206 static size_t readCallback(
210 std::pair<
const std::vector<std::uint8_t>*,
size_t>* stream);
224 static size_t headerCallback(
228 std::pair<std::string, std::map<std::string, std::string>>*
239 std::pair<std::string, std::map<std::string, std::string>>&&
241 std::vector<std::uint8_t>&& chunk);
Wrapper class that bifurcates the values indicated by normal and quasi-normal states.
Definition: result.h:38
HTTP通信を行うインタフェース。
Definition: http_client.h:120
virtual Result< HttpResponse, ErrorResponse > request(std::string_view origin, const HttpRequest &request)=0
HTTPリクエストを発行する。
virtual ~HttpClientBase() noexcept=0
Definition: http_client.cpp:25
virtual Result< _, ErrorResponse > init() noexcept=0
HttpClientを初期化する。
HTTP通信を行う。
Definition: http_client.h:157
Definition: api_bridge.cpp:25
HttpMethod
HTTPメソッドを表す列挙体。
Definition: http_client.h:28
std::ostream & operator<<(std::ostream &stream, const HttpRequest &request)
Definition: http_client.cpp:200
bool operator==(const HttpRequest &a, const HttpRequest &b)
Definition: http_client.cpp:184
HttpVersion
HTTPバージョンを表す。
Definition: http_client.h:42
General stucture to represent the error.
Definition: error_response.h:24
HTTPのリクエストを表す構造体。
Definition: http_client.h:56
HttpVersion version
リクエストに使用するHTTPバージョン。
Definition: http_client.h:60
std::map< std::string, std::string > headerField
リクエストに使用するHTTPヘッダフィールド。
Definition: http_client.h:64
std::string uri
リクエスト先のURI。
Definition: http_client.h:62
HttpMethod method
リクエストに使用するHTTPメソッド。
Definition: http_client.h:58
std::vector< std::uint8_t > body
リクエストのボディ部。
Definition: http_client.h:66
HTTPのレスポンスを表す構造体。
Definition: http_client.h:75
int statusCode
レスポンスのHTTPステータスコードを表す。
Definition: http_client.h:88
std::vector< std::uint8_t > body
レスポンスのボディ部。
Definition: http_client.h:109
HttpVersion version
レスポンスのHTTPのバージョン。
Definition: http_client.h:99
std::string statusLine
レスポンスのHTTPステータスライン。"HTTP/2 200 OK", "HTTP/2 400 Bad Request"など。
Definition: http_client.h:94
std::map< std::string, std::string > headerField
レスポンスのヘッダフィールド。
Definition: http_client.h:104