summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg Morozenkov <omorozenkov@gmail.com>2023-06-05 01:43:53 +0300
committerGitHub <noreply@github.com>2023-06-05 01:43:53 +0300
commitf35c7696d73fb725095be82ae8a982d14283686a (patch)
treeb2e0e4fdebeff72d3d2cc9dc5f245e97e39a8a23
parent9343618bdea96942c86fa8fc927a28f2885550af (diff)
Revert "Repeat the http request on fail"
-rw-r--r--include/tgbot/net/HttpClient.h18
-rw-r--r--src/Api.cpp45
2 files changed, 13 insertions, 50 deletions
diff --git a/include/tgbot/net/HttpClient.h b/include/tgbot/net/HttpClient.h
index 1f1b2a2..aa82c0d 100644
--- a/include/tgbot/net/HttpClient.h
+++ b/include/tgbot/net/HttpClient.h
@@ -29,24 +29,6 @@ public:
virtual std::string makeRequest(const Url& url, const std::vector<HttpReqArg>& args) const = 0;
std::int32_t _timeout = 25;
-
- /**
- * @brief Get the maximum number of makeRequest() retries before giving up and throwing an exception.
- */
- virtual int getRequestMaxRetries() const {
- return requestMaxRetries;
- }
-
- /**
- * @brief Get the makeRequest() backoff duration between retries, in seconds.
- */
- virtual int getRequestBackoff() const {
- return requestBackoff;
- }
-
-private:
- int requestMaxRetries = 3;
- int requestBackoff = 1;
};
}
diff --git a/src/Api.cpp b/src/Api.cpp
index f238a70..7bd9e64 100644
--- a/src/Api.cpp
+++ b/src/Api.cpp
@@ -1,8 +1,5 @@
#include "tgbot/Api.h"
-#include <chrono>
-#include <thread>
-
namespace TgBot {
Api::Api(std::string token, const HttpClient& httpClient, const std::string& url)
@@ -2507,36 +2504,20 @@ boost::property_tree::ptree Api::sendRequest(const std::string& method, const st
url += "/";
url += method;
- int requestRetryBackoff = _httpClient.getRequestBackoff();
- int retries = 0;
- while (1)
- {
- try {
- std::string serverResponse = _httpClient.makeRequest(url, args);
- if (!serverResponse.compare(0, 6, "<html>")) {
- throw TgException("tgbot-cpp library have got html page instead of json response. Maybe you entered wrong bot token.");
- }
-
- boost::property_tree::ptree result = _tgTypeParser.parseJson(serverResponse);
- try {
- if (result.get<bool>("ok", false)) {
- return result.get_child("result");
- } else {
- throw TgException(result.get("description", ""));
- }
- } catch (boost::property_tree::ptree_error& e) {
- throw TgException("tgbot-cpp library can't parse json response. " + std::string(e.what()));
- }
- } catch (...) {
- int max_retries = _httpClient.getRequestMaxRetries();
- if ((max_retries >= 0) && (retries == max_retries)) {
- throw;
- } else {
- std::this_thread::sleep_for(std::chrono::seconds(requestRetryBackoff));
- retries++;
- continue;
- }
+ std::string serverResponse = _httpClient.makeRequest(url, args);
+ if (!serverResponse.compare(0, 6, "<html>")) {
+ throw TgException("tgbot-cpp library have got html page instead of json response. Maybe you entered wrong bot token.");
+ }
+
+ boost::property_tree::ptree result = _tgTypeParser.parseJson(serverResponse);
+ try {
+ if (result.get<bool>("ok", false)) {
+ return result.get_child("result");
+ } else {
+ throw TgException(result.get("description", ""));
}
+ } catch (boost::property_tree::ptree_error& e) {
+ throw TgException("tgbot-cpp library can't parse json response. " + std::string(e.what()));
}
}
}