Loading src/http.cpp +23 −1 Original line number Diff line number Diff line Loading @@ -2825,6 +2825,7 @@ const std::vector<char> libhttppp::HttpClient::Post(libhttppp::HttpRequest &nreq const std::vector<char> &post, size_t maxTries) { size_t tries = 0; int redirects = 0; for (;;) { try { // Reuse existing connection if possible Loading Loading @@ -2866,7 +2867,28 @@ const std::vector<char> libhttppp::HttpClient::Post(libhttppp::HttpRequest &nreq _sendAll(combined.data(), combined.size()); } return _h1ReadResponse("POST"); auto ret = _h1ReadResponse("POST"); // Handle redirects (301, 302, 303, 307, 308) if (_lastStatusCode >= 301 && _lastStatusCode <= 308 && _lastStatusCode != 304 && _lastStatusCode != 305 && !_lastLocation.empty() && redirects < MAX_REDIRECTS) { ++redirects; if (_lastLocation.find("://") != std::string::npos) { _url = HttpUrl(_lastLocation); resetConnection(); } nreq.setRequestURL(_lastLocation.find("://") != std::string::npos ? _url.getPath() : _lastLocation); // 303: change to GET (RFC 7231). 307/308: preserve POST. if (_lastStatusCode == 303) { nreq.setRequestType(GETREQUEST); } continue; } return ret; } catch (netplus::NetException &e) { ++tries; Loading Loading
src/http.cpp +23 −1 Original line number Diff line number Diff line Loading @@ -2825,6 +2825,7 @@ const std::vector<char> libhttppp::HttpClient::Post(libhttppp::HttpRequest &nreq const std::vector<char> &post, size_t maxTries) { size_t tries = 0; int redirects = 0; for (;;) { try { // Reuse existing connection if possible Loading Loading @@ -2866,7 +2867,28 @@ const std::vector<char> libhttppp::HttpClient::Post(libhttppp::HttpRequest &nreq _sendAll(combined.data(), combined.size()); } return _h1ReadResponse("POST"); auto ret = _h1ReadResponse("POST"); // Handle redirects (301, 302, 303, 307, 308) if (_lastStatusCode >= 301 && _lastStatusCode <= 308 && _lastStatusCode != 304 && _lastStatusCode != 305 && !_lastLocation.empty() && redirects < MAX_REDIRECTS) { ++redirects; if (_lastLocation.find("://") != std::string::npos) { _url = HttpUrl(_lastLocation); resetConnection(); } nreq.setRequestURL(_lastLocation.find("://") != std::string::npos ? _url.getPath() : _lastLocation); // 303: change to GET (RFC 7231). 307/308: preserve POST. if (_lastStatusCode == 303) { nreq.setRequestType(GETREQUEST); } continue; } return ret; } catch (netplus::NetException &e) { ++tries; Loading