Loading src/http.cpp +28 −13 Original line number Diff line number Diff line Loading @@ -521,6 +521,15 @@ const std::vector<char> libhttppp::HttpClient::_h2Request( const std::vector<char> libhttppp::HttpClient::Get(libhttppp::HttpRequest &nreq) { std::stringstream host; host << _url.getHost() << ":" << _url.getPort(); nreq.setHeaderData("host")->push_back(host.str()); nreq.setRequestType(GETREQUEST); if (nreq.getRequestURL().empty()) nreq.setRequestURL(_url.getPath()); // HTTP/2: delegate to binary framing path if (_isH2) { return _h2Request("GET", nreq); Loading @@ -532,14 +541,6 @@ const std::vector<char> libhttppp::HttpClient::Get(libhttppp::HttpRequest &nreq) // --------------------------------------------------------- // 0) Build request headers // --------------------------------------------------------- std::stringstream host; host << _url.getHost() << ":" << _url.getPort(); nreq.setHeaderData("host")->push_back(host.str()); nreq.setRequestType(GETREQUEST); if (nreq.getRequestURL().empty()) nreq.setRequestURL(_url.getPath()); if (nreq.getRequestVersion().empty()) nreq.setRequestVersion(HTTPVERSION(1.1)); Loading Loading @@ -2321,6 +2322,16 @@ int libhttppp::HttpRequest::getRequestType(){ } const std::string &libhttppp::HttpRequest::getRequestURL(){ if (_cachedRequestURL.empty() && !_cachedRequest.empty()) { _cachedRequestURL = extractPath(_cachedRequest); } if (_cachedRequestURL.empty()) { auto *hPath = getHeaderData(":path"); if (hPath && hPath->getfirstValue()) { _cachedRequest = hPath->getfirstValue()->getvalue(); _cachedRequestURL = extractPath(_cachedRequest); } } return _cachedRequestURL; } Loading Loading @@ -2368,6 +2379,7 @@ void libhttppp::HttpRequest::setRequestData(const std::string &data, size_t len) _cachedRequest.clear(); _cachedRequest.resize(len); _cachedRequest.insert(0,data); _cachedRequestURL = extractPath(_cachedRequest); // Update :path pseudo-header in _firstHeaderData auto *hPath = setHeaderData(":path"); if (hPath) { hPath->clear(); hPath->push_back(_cachedRequest); } Loading Loading @@ -2422,13 +2434,16 @@ void libhttppp::HttpRequest::setRequestType(int req){ } void libhttppp::HttpRequest::setRequestURL(const std::string &url){ if(!url.empty()) _cachedRequestURL=url; else if(!url.empty()){ _cachedRequest = url; _cachedRequestURL = extractPath(url); }else{ _cachedRequest.clear(); _cachedRequestURL.clear(); // Update :path pseudo-header in _firstHeaderData } // Update :path pseudo-header in _firstHeaderData with the full target auto *hPath = setHeaderData(":path"); if (hPath) { hPath->clear(); hPath->push_back(_cachedRequestURL); } if (hPath) { hPath->clear(); hPath->push_back(_cachedRequest); } } Loading Loading
src/http.cpp +28 −13 Original line number Diff line number Diff line Loading @@ -521,6 +521,15 @@ const std::vector<char> libhttppp::HttpClient::_h2Request( const std::vector<char> libhttppp::HttpClient::Get(libhttppp::HttpRequest &nreq) { std::stringstream host; host << _url.getHost() << ":" << _url.getPort(); nreq.setHeaderData("host")->push_back(host.str()); nreq.setRequestType(GETREQUEST); if (nreq.getRequestURL().empty()) nreq.setRequestURL(_url.getPath()); // HTTP/2: delegate to binary framing path if (_isH2) { return _h2Request("GET", nreq); Loading @@ -532,14 +541,6 @@ const std::vector<char> libhttppp::HttpClient::Get(libhttppp::HttpRequest &nreq) // --------------------------------------------------------- // 0) Build request headers // --------------------------------------------------------- std::stringstream host; host << _url.getHost() << ":" << _url.getPort(); nreq.setHeaderData("host")->push_back(host.str()); nreq.setRequestType(GETREQUEST); if (nreq.getRequestURL().empty()) nreq.setRequestURL(_url.getPath()); if (nreq.getRequestVersion().empty()) nreq.setRequestVersion(HTTPVERSION(1.1)); Loading Loading @@ -2321,6 +2322,16 @@ int libhttppp::HttpRequest::getRequestType(){ } const std::string &libhttppp::HttpRequest::getRequestURL(){ if (_cachedRequestURL.empty() && !_cachedRequest.empty()) { _cachedRequestURL = extractPath(_cachedRequest); } if (_cachedRequestURL.empty()) { auto *hPath = getHeaderData(":path"); if (hPath && hPath->getfirstValue()) { _cachedRequest = hPath->getfirstValue()->getvalue(); _cachedRequestURL = extractPath(_cachedRequest); } } return _cachedRequestURL; } Loading Loading @@ -2368,6 +2379,7 @@ void libhttppp::HttpRequest::setRequestData(const std::string &data, size_t len) _cachedRequest.clear(); _cachedRequest.resize(len); _cachedRequest.insert(0,data); _cachedRequestURL = extractPath(_cachedRequest); // Update :path pseudo-header in _firstHeaderData auto *hPath = setHeaderData(":path"); if (hPath) { hPath->clear(); hPath->push_back(_cachedRequest); } Loading Loading @@ -2422,13 +2434,16 @@ void libhttppp::HttpRequest::setRequestType(int req){ } void libhttppp::HttpRequest::setRequestURL(const std::string &url){ if(!url.empty()) _cachedRequestURL=url; else if(!url.empty()){ _cachedRequest = url; _cachedRequestURL = extractPath(url); }else{ _cachedRequest.clear(); _cachedRequestURL.clear(); // Update :path pseudo-header in _firstHeaderData } // Update :path pseudo-header in _firstHeaderData with the full target auto *hPath = setHeaderData(":path"); if (hPath) { hPath->clear(); hPath->push_back(_cachedRequestURL); } if (hPath) { hPath->clear(); hPath->push_back(_cachedRequest); } } Loading