diff options
| author | Dan Engelbrecht <[email protected]> | 2025-11-04 10:52:28 +0100 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-11-04 10:52:28 +0100 |
| commit | 6548080e9da9b09f6800fc4bd4c1c3ed4a5eede4 (patch) | |
| tree | 5790ea775ad57d948a7eaf16bf11fcb237f29a0f /src/zenhttp/clients/httpclientcpr.cpp | |
| parent | abort build upload if we fail to finalize a build part (#623) (diff) | |
| download | zen-6548080e9da9b09f6800fc4bd4c1c3ed4a5eede4.tar.xz zen-6548080e9da9b09f6800fc4bd4c1c3ed4a5eede4.zip | |
add `--verbose-http` option to builds commands (#630)
Diffstat (limited to 'src/zenhttp/clients/httpclientcpr.cpp')
| -rw-r--r-- | src/zenhttp/clients/httpclientcpr.cpp | 54 |
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()) |