aboutsummaryrefslogtreecommitdiff
path: root/src/zenhttp/clients/httpclientcpr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenhttp/clients/httpclientcpr.cpp')
-rw-r--r--src/zenhttp/clients/httpclientcpr.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/zenhttp/clients/httpclientcpr.cpp b/src/zenhttp/clients/httpclientcpr.cpp
index ca4d03dd4..333fd20b0 100644
--- a/src/zenhttp/clients/httpclientcpr.cpp
+++ b/src/zenhttp/clients/httpclientcpr.cpp
@@ -432,6 +432,60 @@ CprHttpClient::AllocSession(const std::string_view BaseUrl,
{
CprSession->SetHttpVersion(cpr::HttpVersion{cpr::HttpVersionCode::VERSION_2_0_PRIOR_KNOWLEDGE});
}
+ if (ConnectionSettings.Verbose)
+ {
+ // CprSession->SetVerbose(cpr::Verbose{ true });
+ CprSession->SetDebugCallback(cpr::DebugCallback{
+ [this](cpr::DebugCallback::InfoType type, std::string data, intptr_t userdata) {
+ cpr::Session* CprSession = (cpr::Session*)userdata;
+ ZEN_UNUSED(CprSession);
+ switch (type)
+ {
+ case cpr::DebugCallback::InfoType::TEXT:
+ if (data.find("need more data"sv) == std::string::npos)
+ {
+ ZEN_INFO("TEXT: {}", data);
+ }
+ break;
+ case cpr::DebugCallback::InfoType::HEADER_IN:
+ ZEN_INFO("HIN : {}", data);
+ break;
+ case cpr::DebugCallback::InfoType::HEADER_OUT:
+ if (std::string::size_type TokenPos = data.find("Authorization: Bearer "sv); TokenPos != std::string::npos)
+ {
+ TokenPos += 22;
+ std::string::size_type TokenEndPos = data.find_first_of("\r\n", TokenPos);
+ if (TokenEndPos == std::string::npos)
+ {
+ TokenEndPos = data.length();
+ }
+ std::string Copy = data;
+ Copy.replace(Copy.begin() + TokenPos,
+ Copy.begin() + TokenEndPos,
+ fmt::format("[{} char token]", TokenEndPos - TokenPos));
+ ZEN_INFO("HOUT: {}", Copy);
+ }
+ else
+ {
+ ZEN_INFO("HOUT: {}", data);
+ }
+ break;
+ case cpr::DebugCallback::InfoType::DATA_IN:
+ // ZEN_INFO("DATA_IN: {}", data);
+ break;
+ case cpr::DebugCallback::InfoType::DATA_OUT:
+ // ZEN_INFO("DATA_OUT: {}", data);
+ break;
+ case cpr::DebugCallback::InfoType::SSL_DATA_IN:
+ // ZEN_INFO("SSL_DATA_IN: {}", data);
+ break;
+ case cpr::DebugCallback::InfoType::SSL_DATA_OUT:
+ // ZEN_INFO("SSL_DATA_OUT: {}", data);
+ break;
+ }
+ },
+ (intptr_t)CprSession});
+ }
}
if (!AdditionalHeader->empty())