微软开源 C++ REST SDK
程序员文章站
2022-03-10 23:28:20
...
微软近日开源了C++ REST SDK,托管在自己的CodePlex平台上。
项目地址:http://casablanca.codeplex.com
C++ REST SDK包含在Casablanca项目中。Casablanca是一个C++本地库,旨在帮助开发者的C++应用程序访问云服务。如果你想编写一个响应式的C++客户端应用程序,或者是一个可扩展的服务端解决方案,可以试试Casablanca。除了C++ REST SDK外,Casablanca项目还包含Azure SDK for C++。
C++ REST SDK中包含了一些工具,可以帮助开发者快速编写现代、异步、可连接REST服务的C++应用程序,遵循C++11标准,目前支持Windows 7、Windows 8(包括Windows Store和桌面应用)和Linux。
该SDK的主要特性包括:
下面的示例演示了如何构建并遍历JSON值:
详细信息:The C++ REST SDK ("Casablanca")
项目地址:http://casablanca.codeplex.com
C++ REST SDK包含在Casablanca项目中。Casablanca是一个C++本地库,旨在帮助开发者的C++应用程序访问云服务。如果你想编写一个响应式的C++客户端应用程序,或者是一个可扩展的服务端解决方案,可以试试Casablanca。除了C++ REST SDK外,Casablanca项目还包含Azure SDK for C++。
C++ REST SDK中包含了一些工具,可以帮助开发者快速编写现代、异步、可连接REST服务的C++应用程序,遵循C++11标准,目前支持Windows 7、Windows 8(包括Windows Store和桌面应用)和Linux。
该SDK的主要特性包括:
- 能够通过HTTP Client创建服务器连接,并发送请求、处理响应
- 支持构造和使用URI(Uniform Resource Identifiers,统一资源标识符)
- 构造、解析和序列化JSON值
- 通过Streams和Stream Buffers从底层介质异步读取/写入字节
#include <http_client.h> #include<filestream.h> #include <uri.h> using namespace concurrency::streams; using namespace web::http::client; using namespace web::http; int main() { // Open stream to file. file_stream<unsigned char>::open_istream(L"myfile.txt").then([](basic_istream<unsigned char> fileStream) { // Make HTTP request with the file stream as the body. http_client client(L"http://www.myhttpserver.com"); client.request(methods::PUT, L"myfile", fileStream).then([fileStream](http_response response) { fileStream.close(); // Perform actions here to inspect the HTTP response... if(response.status_code() == status_codes::OK) { } }); }); return 0; }
下面的示例演示了如何构建并遍历JSON值:
#include <json.h> int main() { // Create a JSON object. json::value obj; obj[L"key1"] = json::value::boolean(false); obj[L"key2"] = json::value::number(44); obj[L"key3"] = json::value::number(43.6); obj[L"key4"] = json::value::string(U("str")); // Loop over each element in the object. for(auto iter = obj.cbegin(); iter != obj.cend(); ++iter) { // Make sure to get the value as const reference otherwise you will end up copying // the whole JSON value recursively which can be expensive if it is a nested object. const json::value &str = iter->first; const json::value &v = iter->second; // Perform actions here to process each string and value in the JSON object... wprintf(L"String:%s", str.as_string()); wprintf(L"Value:%s", v.to_string()); } return 0; }
详细信息:The C++ REST SDK ("Casablanca")
上一篇: Nginx的常用配置说明
下一篇: js正则表达式的修饰符