Sese Framework
x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
HttpClientImpl.h
浏览该文件的文档.
1
// Copyright 2024 libsese
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
19
20
#pragma once
21
22
#include "
sese/net/http/CookieMap.h
"
23
#include "
sese/net/http/Requestable.h
"
24
#include "
sese/net/IPv6Address.h
"
25
#include "
sese/record/Marco.h
"
26
27
#include <asio.hpp>
28
#include <asio/ssl.hpp>
29
30
namespace
sese::internal::net::http
{
31
33
class
HttpClientImpl
:
public
sese::net::http::Requestable
{
34
public
:
35
HttpClientImpl
(
const
sese::net::IPAddress::Ptr
&addr,
sese::net::http::Request::Ptr
req
);
36
37
~HttpClientImpl
()
override
;
38
39
bool
request
()
override
;
40
41
int64_t
read
(
void
*buf,
size_t
len)
override
;
42
43
int64_t
write
(
const
void
*buf,
size_t
len)
override
;
44
45
int
getLastError
()
override
;
46
47
std::string
getLastErrorString
()
override
;
48
49
protected
:
50
virtual
bool
handshake
();
51
virtual
bool
shutdown
();
52
53
bool
writeHeader
(
io::ByteBuilder
&builder);
54
55
bool
writeBodyByCallback
();
56
bool
writeBodyByData
();
57
bool
writeBodyByAuto
();
58
59
bool
readBodyByCallback
(
size_t
expect);
60
bool
readBodyByData
(
size_t
expect);
61
62
sese::net::IPAddress::Ptr
address
;
63
sese::net::http::CookieMap::Ptr
cookies
;
64
65
asio::error_code
code
{};
66
asio::io_context
ioContext
;
67
asio::ip::tcp::socket
socket
;
68
69
bool
first
=
true
;
70
};
71
}
// namespace sese::internal::net::http
sese
internal
net
http
HttpClientImpl.h
生成于 2024年 十一月 4日 星期一 09:58:00 , 为 Sese Framework使用
1.11.0