yhirose 5 years ago
parent
commit
797d1f27e8
4 changed files with 282 additions and 483 deletions
  1. 10 1
      README.md
  2. 250 471
      httplib.h
  3. 14 7
      test/test.cc
  4. 8 4
      test/test_proxy.cc

+ 10 - 1
README.md

@@ -287,7 +287,6 @@ Client Example
 
 int main(void)
 {
-  // IMPORTANT: 1st parameter must be a hostname or an IP address string.
   httplib::Client cli("localhost", 1234);
 
   auto res = cli.Get("/hi");
@@ -297,6 +296,16 @@ int main(void)
 }
 ```
 
+NOTE: Constructor with scheme-host-port string is now supported!
+
+```c++
+httplib::Client cli("localhost");
+httplib::Client cli("localhost:8080");
+httplib::Client cli("http://localhost");
+httplib::Client cli("http://localhost:8080");
+httplib::Client cli("https://localhost");
+```
+
 ### GET with HTTP headers
 
 ```c++

File diff suppressed because it is too large
+ 250 - 471
httplib.h


+ 14 - 7
test/test.cc

@@ -3065,19 +3065,26 @@ TEST(CleanupTest, WSACleanup) {
 }
 #endif
 
+// #ifndef CPPHTTPLIB_OPENSSL_SUPPORT
+// TEST(NoSSLSupport, SimpleInterface) {
+//   httplib::Client cli("https://yahoo.com");
+//   ASSERT_FALSE(cli.is_valid());
+// }
+// #endif
+
 #ifdef CPPHTTPLIB_OPENSSL_SUPPORT
 TEST(InvalidScheme, SimpleInterface) {
-  httplib::Client2 cli("scheme://yahoo.com");
+  httplib::Client cli("scheme://yahoo.com");
   ASSERT_FALSE(cli.is_valid());
 }
 
 TEST(NoScheme, SimpleInterface) {
-  httplib::Client2 cli("yahoo.com");
-  ASSERT_FALSE(cli.is_valid());
+  httplib::Client cli("yahoo.com:80");
+  ASSERT_TRUE(cli.is_valid());
 }
 
 TEST(YahooRedirectTest2, SimpleInterface) {
-  httplib::Client2 cli("http://yahoo.com");
+  httplib::Client cli("http://yahoo.com");
 
   auto res = cli.Get("/");
   ASSERT_TRUE(res != nullptr);
@@ -3090,7 +3097,7 @@ TEST(YahooRedirectTest2, SimpleInterface) {
 }
 
 TEST(YahooRedirectTest3, SimpleInterface) {
-  httplib::Client2 cli("https://yahoo.com");
+  httplib::Client cli("https://yahoo.com");
 
   auto res = cli.Get("/");
   ASSERT_TRUE(res != nullptr);
@@ -3104,7 +3111,7 @@ TEST(YahooRedirectTest3, SimpleInterface) {
 
 #ifdef CPPHTTPLIB_BROTLI_SUPPORT
 TEST(DecodeWithChunkedEncoding, BrotliEncoding) {
-  httplib::Client2 cli("https://cdnjs.cloudflare.com");
+  httplib::Client cli("https://cdnjs.cloudflare.com");
   auto res = cli.Get("/ajax/libs/jquery/3.5.1/jquery.js", {{"Accept-Encoding", "brotli"}});
 
   ASSERT_TRUE(res != nullptr);
@@ -3117,7 +3124,7 @@ TEST(DecodeWithChunkedEncoding, BrotliEncoding) {
 #if 0
 TEST(HttpsToHttpRedirectTest2, SimpleInterface) {
   auto res =
-      httplib::Client2("https://httpbin.org")
+      httplib::Client("https://httpbin.org")
           .set_follow_location(true)
           .Get("/redirect-to?url=http%3A%2F%2Fwww.google.com&status_code=302");
 

+ 8 - 4
test/test_proxy.cc

@@ -5,7 +5,8 @@
 using namespace std;
 using namespace httplib;
 
-void ProxyTest(Client& cli, bool basic) {
+template <typename T>
+void ProxyTest(T& cli, bool basic) {
   cli.set_proxy("localhost", basic ? 3128 : 3129);
   auto res = cli.Get("/get");
   ASSERT_TRUE(res != nullptr);
@@ -36,7 +37,8 @@ TEST(ProxyTest, SSLDigest) {
 
 // ----------------------------------------------------------------------------
 
-void RedirectProxyText(Client& cli, const char *path, bool basic) {
+template <typename T>
+void RedirectProxyText(T& cli, const char *path, bool basic) {
   cli.set_proxy("localhost", basic ? 3128 : 3129);
   if (basic) {
     cli.set_proxy_basic_auth("hello", "world");
@@ -100,7 +102,8 @@ TEST(RedirectTest, YouTubeSSLDigest) {
 
 // ----------------------------------------------------------------------------
 
-void BaseAuthTestFromHTTPWatch(Client& cli) {
+template <typename T>
+void BaseAuthTestFromHTTPWatch(T& cli) {
   cli.set_proxy("localhost", 3128);
   cli.set_proxy_basic_auth("hello", "world");
 
@@ -157,7 +160,8 @@ TEST(BaseAuthTest, SSL) {
 // ----------------------------------------------------------------------------
 
 #ifdef CPPHTTPLIB_OPENSSL_SUPPORT
-void DigestAuthTestFromHTTPWatch(Client& cli) {
+template <typename T>
+void DigestAuthTestFromHTTPWatch(T& cli) {
   cli.set_proxy("localhost", 3129);
   cli.set_proxy_digest_auth("hello", "world");
 

Some files were not shown because too many files changed in this diff