v2.3.0
·
1360 commits
to master
since this release
Release Notes
Please note this will be the last release that we include binaries for Visual Studio 2012 in our NuGet package.
http_client
- Implemented server certificate verification on Android. #242
- Added usage of Boost ssl::context::default_workarounds for compatibility with somewhat broken servers.
- Fixed issue with server certification verification if multiple requests are made on iOS, OS X, and Android.
- Remove unnecessary setting of Content-Length header in HTTP requests to zero.
- Updated documentation for http_request default constructor and made default to the HTTP GET method to avoid ambiguity. #273
- For sending request bodies added overloads on Windows for directly working with UTF-8 strings. This saves copies and extra moves on many platforms.
- Fixed several issues around timeouts and cancellation with the Boost based implementation. Also addressed several places timeouts weren't being handle properly. #280
- Improved error messages with WinHttp based implementation to include error code and message in the exception what() string.
- Fixed an issue where a blocking wait was being used to close the response stream and any exceptions coming out of the returned task were not handled.
websocket_client
- All of the websocket features have been moved out of the experimental namespace.
- Implemented 'wss' support for Android/iOS/OSX/Linux/Windows desktop. #255
- HTTP headers for initial HTTP request can be specified now on the non-winrt implementation as well. #251
- Added subprotocol API support. New APIs exist on websocket_client_config class. 206
- Added overloads for websocket_outgoing_msg::set_utf8_message() and websocket_outgoing_msg::set_binary_message() which allows the user to not specify stream length. #152
- Poco is no longer used as test server for WinRT tests, Websocketpp is used in all cases. #221
- Improved parameter passing in many locations, adding r-value references for string message data.
- Improved error messages with both the websocketpp and winrt implementations.
- Updated websocketpp library to 0.3.0 version.
- Added a Visual Studio visualizer for websockets. #120
- Fixed spelling mistake on an API. Renamed websocket_incoming_message::messge_type() to websocket_incoming_message::message_type().
- Storage improvements on websocket message classes. Saving a heap allocation, a pointer, and a size_t.
- Fixed connection abort\disconnect issue in winrt implementation. #181
http_listener
- Initiating multiple close() calls on an http_listener no longer results in a race condition. Note: ~http_listener does invoke close(), even though the user should close it before destruction. #192
streams
- Writing to standard C++ I/O streams with read_to_end() will now throw an exception if it fails. #244
- Fixed reading files larger than 4GB on Windows, if on 64bit. #161
- Including the streams.h header file no longer injects a specialization into std::. #125
- Fixed several places that could cause blocking waits. #135
- Removed an unnecessary size_t from container buffer, saving space.
json
- Adding the ability to perform exception free parsing. All the parsing APIs now take a std::error_code as a second parameter by reference.
- Fixed issues around JSON library assuming the current local is "C". #118
- Added overload when constructing json string values to indicate whether or not the string contains any characters that need to be escaped. If the string is known to not contain any characters that need escaping, then the performance is better.
- Fixed issue with Unicode escaping for code points over 127. #252
misc
- The run_tests.sh script has been removed. The tests can be run by invoking the testrunner directly. #182
- Various reference documentation improvements.
- Updated .gitignore to account for NuGet packages directory. #282
- Passwords are now stored in memory encrypted. The API web::credentials::password() has been deprecated.
- Renamed some folders to use lower case names.
Windows
- Added support for Visual Studio 2015 for desktop applications. #278. Please note websockets are not included with Visual Studio 2015 yet.
- Added support for Windows Phone 8.1 Silverlight. #227
- Fixed issue with the XP project file not loading correctly in the solution. #262
- Visual Studio project files have there packages.config separated out, only pulling in the exact NuGet packages necessary for that project now. #285
- Added OpenSSL as a new dependency on Windows desktop, for secure websockets. Due to the unconditional dependency this causes the OpenSSL dlls by default to be included in the Windows Store app package. There are a variety of ways to temporarily to work around this issue. The vcxproj file can be directly edited to remove importing the OpenSSL targets file. Or the NuGet package can be installed from the using the NuGet package manager console to avoid the dependencies:
- Install-Package -Id cpprestsdk -IgnoreDependencies
Android
- Updated to Android NDK r10.
- Moved from using gcc to clang.
- Moved to produce a static library as the default instead of a shared library.
- Added a NuGet package for cross platform development with Visual Studio 2015, currently only supporting the ARM architecture.
iOS
- Updated iOS 8 SDK.
- Updated iOS build script to use a patch to fix the Boost version used to be 1.56.