yhirose 6 years ago
parent
commit
1bf616d653
1 changed files with 2 additions and 8 deletions
  1. 2 8
      httplib.h

+ 2 - 8
httplib.h

@@ -1967,7 +1967,7 @@ inline std::string encode_url(const std::string &s) {
     case '\n': result += "%0A"; break;
     case '\n': result += "%0A"; break;
     case '\'': result += "%27"; break;
     case '\'': result += "%27"; break;
     case ',': result += "%2C"; break;
     case ',': result += "%2C"; break;
-    case ':': result += "%3A"; break;
+    // case ':': result += "%3A"; break; // ok? probably...
     case ';': result += "%3B"; break;
     case ';': result += "%3B"; break;
     default:
     default:
       auto c = static_cast<uint8_t>(s[i]);
       auto c = static_cast<uint8_t>(s[i]);
@@ -3666,13 +3666,7 @@ inline bool Client::write_request(Stream &strm, const Request &req,
   BufferStream bstrm;
   BufferStream bstrm;
 
 
   // Request line
   // Request line
-  const static std::regex re(
-      R"(^((?:[^:/?#]+://)?(?:[^/?#]*)?)?([^?#]*(?:\?[^#]*)?(?:#.*)?))");
-
-  std::smatch m;
-  if (!regex_match(req.path, m, re)) { return false; }
-
-  auto path = m[1].str() + detail::encode_url(m[2].str());
+  const auto& path = detail::encode_url(req.path);
 
 
   bstrm.write_format("%s %s HTTP/1.1\r\n", req.method.c_str(), path.c_str());
   bstrm.write_format("%s %s HTTP/1.1\r\n", req.method.c_str(), path.c_str());