Commit Graph

150 Commits

Author SHA1 Message Date
yhirose 72b20c08da Better API names 2019-12-13 06:56:00 -05:00
yhirose afd6d5f9dc Removed compress parameter and added compress method on client 2019-12-12 23:09:59 -05:00
yhirose 5324b3d661 Improved multipart form data interface 2019-12-12 22:48:09 -05:00
yhirose 151ccba57e Code cleanup 2019-12-12 21:50:12 -05:00
Yuji Hirose d064fb7ff2 Fixed warning 2019-12-10 13:08:07 -05:00
Yuji Hirose fd4e1b4112 Fix #266 2019-12-10 12:10:14 -05:00
Matthew DeVore bc9251ea49 Work around incompatibility in <regex> in libc++
libc++ (the implementation of the C++ standard library usually used by
Clang) throws an exception for the regex used by parse_headers before
this patch for certain strings. Work around this by simplifying the
regex and parsing the header lines "by hand" partially. I have repro'd
this problem with Xcode 11.1 which I believe uses libc++ version 8.

This may be a bug in libc++ as I can't see why the regex would result in
asymptotic run-time complexity for any strings. However, it may take a
while for libc++ to be fixed and for everyone to migrate to it, so it
makes sense to work around it in this codebase for now.
2019-12-05 17:14:16 -08:00
Matthew DeVore a9e942d755 Properly trim whitespace from headers
HTTP Whitespace and regex whitespace are not the same, so we can't use
\s in regexes when parsing HTTP headers. Instead, explicitly specify
what is considered whitespace in the regex.
2019-12-05 17:14:16 -08:00
yhirose 033bc35723 Improve multipart content reader interface 2019-12-02 07:11:12 -05:00
yhirose b69c0a1dcb Content receiver support for multipart content (Fix #241) 2019-12-01 22:04:26 -05:00
yhirose 295e4d58aa Fix #276 2019-11-29 17:07:51 -05:00
yhirose 880f7fa62b Fix #273 2019-11-27 12:54:01 -05:00
yhirose 9d57899352 Simplified ContentReceiver interface 2019-10-27 23:38:56 -04:00
yhirose d03937e144 Content receiver support on server 2019-10-27 23:20:56 -04:00
yhirose 5f32c424c2 Content provider support on client 2019-10-25 18:39:04 -04:00
yhirose 0d527e2b83 Code formatting 2019-10-25 12:09:26 -04:00
yhirose bea3ebd7af Added 'compress' option to POST, PUT and PATCH. 2019-10-25 11:46:12 -04:00
yhirose a106bd314c Merge branch 'master' of https://github.com/yhirose/cpp-httplib 2019-10-23 08:30:49 -04:00
yhirose e4fd9f19ca Updated Makefile 2019-10-23 08:28:15 -04:00
yhirose 001b8a5529 Added unit tests 2019-10-22 23:32:14 -04:00
yhirose dcdb0d047b Fixed PRI request problem 2019-10-03 13:44:18 -04:00
yhirose 6d8302313c Fixed warning 2019-10-03 13:44:18 -04:00
Shunsuke Mie 5f49c13f95 Fix a test, ConnectionErrorTest::InvalidPort. currently, the abcde.com is valid, so I change it. The first byte doesn't permit a hyphen. 2019-10-03 21:49:11 +09:00
yhirose a99e02aeb3 Add HTTP/2 Connection Preface check test 2019-10-01 06:28:45 -04:00
yhirose c47c6b3910 Updated test.vcxproj 2019-09-26 13:20:53 -04:00
yhirose 1f99ad5d6e Updated vcxproj for test 2019-09-25 08:16:15 -04:00
Steffen Schuemann 7e92ffec48 Added new Client::Get variant that combines a ContentReceiver with a new ResponseHandler
While trying to implement streaming of internet radio, where a ContentReceiver is needed to handle the audio data, I had the problem, that important information about the stream data is part of the HTTP header (e.g. size of audio chunks between meta data), so I added a ResponseHandler and a new Get variant, to gain access to the header before handling the first chunk of data.

The ResponseHandler can abort the request by returning false, in the same way as the ContentReceiver.

A test case was also added.
2019-09-14 14:55:12 +02:00
yhirose 531708816a Update README 2019-09-06 18:29:22 -04:00
yhirose bfec81998b Code cleanup 2019-09-06 18:16:42 -04:00
yhirose c9238434e1 Added redirect support (Fix #211) 2019-09-06 18:07:35 -04:00
yhirose 359b06681b Fixed warnings 2019-09-03 17:16:16 -04:00
yhirose a0fe91e84d Fixed unit test problem 2019-09-03 17:16:07 -04:00
yhirose 80f040cf69 Fix #209 2019-09-03 17:10:04 -04:00
yhirose 1e82359329 Keep-alive connection support on client (Fix #36) 2019-08-31 17:52:24 -04:00
yhirose 64991a560a Fixed problems with Win32 build 2019-08-07 15:21:22 +09:00
yhirose d7bb402ca7 Format code 2019-08-06 18:12:05 +09:00
yhirose 2823a94fc1 Added 'resource_releaser' for content provider 2019-08-05 09:40:23 +09:00
yhirose 5a13539e57 Revert "Fixed unit test error on Windows"
This reverts commit 531f6ab84d.
2019-08-04 09:50:47 +09:00
yhirose 531f6ab84d Fixed unit test error on Windows 2019-08-03 20:43:27 -04:00
yhirose c899462e75 Added 'Content-Range' header for single range request 2019-08-03 22:12:24 +09:00
yhirose 9d7b717504 Range header support and redesign of content provider interface 2019-08-03 03:28:39 +09:00
yhirose e8799383f3 Made unit tests stable 2019-07-30 01:51:53 +00:00
yhirose ba7f9fe4c3 Added more unit tests 2019-07-28 19:11:58 -04:00
yhirose 34651ef89b Fix #121 2019-07-23 09:53:44 -04:00
yhirose e0d327558d Updated README 2019-07-23 08:05:51 -04:00
yhirose b5a1d52f36 Test code cleanup 2019-07-19 11:47:08 -04:00
yhirose eaafa5d55c Fix #127 2019-07-19 11:38:06 -04:00
yhirose 6f663028e9 Fix #139. Content receiver support 2019-07-17 22:00:18 -04:00
yhirose 3541fe8330 Use -pthread 2019-07-09 22:31:55 -04:00
yhirose cdc45c4601 Changed to use CXX and CXXFLAGS in Makefile 2019-06-26 15:09:34 -04:00