阅读更多

2顶
0踩

开源软件

原创新闻 微软开源 C++ REST SDK

2013-02-28 16:04 by 副主编 wangguo 评论(3) 有8712人浏览
微软近日开源了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的主要特性包括:

  • 能够通过HTTP Client创建服务器连接,并发送请求、处理响应
  • 支持构造和使用URI(Uniform Resource Identifiers,统一资源标识符)
  • 构造、解析和序列化JSON值
  • 通过Streams和Stream Buffers从底层介质异步读取/写入字节
下面的示例演示了如何上传文件到HTTP服务器:

#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")
2
0
评论 共 3 条 请登录后发表评论
3 楼 wangguo 2013-03-01 09:25
troyconder 写道
上下两段代码一致啊,坑爹

大疏忽,已改
2 楼 troyconder 2013-03-01 09:13
上下两段代码一致啊,坑爹
1 楼 mathgl 2013-02-28 17:20
看起来已经是c++ 11了

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 微软开源C++ REST SDK(Casablanca源代码)

    C++ REST SDK(代号Casablanca)为使用云计算进行软件架构的C++开发者提供最好的支持。   相关资料: http://www.okbase.net/doc/details/3529 http://blog.okbase.net/vchelp/archive/735.html

  • 微软开源网络库:c++REST SDK 编译包

    微软开源网络库:c++REST SDK 编译包,包含:include、lib、dll文件夹,提供x64位debug和release编译结果,开箱即用!可以支持VS2015 / VS2017 / VS2019的使用,自带个人编写的VS示例工程,post/get请求示例。

  • C++ REST SDK的基本用法

    微软开发了一个开源跨平台的http库–C++ REST SDK(http://casablanca.codeplex.com/),又名卡萨布兰卡Casablanca,有个电影也叫这个名字,也许这个库的作者很喜欢这个电影吧。从REST SDK这个名字可以看出它是处理...

  • 微软开源C++ REST SDK——Casablanca

    微软的代号为Casablanca的C++ REST SDK已经基于Apache许可证开源。它被描述为“微软为了以原生代码支持基于云的客户端/服务器通信所做的努力,采用了现代异步C++ API设计”。该产品使用C++11实现,微软希望提供一种...

  • C++ REST SDK(Casablanca)

    微软开发了一个开源跨平台的http库--C++ REST SDK,又名卡萨布兰卡Casablanca。由于REST API的请求支持application/x-www-form-urlencoded、application/json、application/octet-stream等多种编码方式,REST API的...

  • linux 编译cpprestsdk,使用微软的 C++ REST SDK

    MSDN官网简介:借助 C++ REST SDK(代号“Casablanca”),您可以更轻松地编写与基于云端的服务相连的新式异步 C++ 代码。...这个微软的开源项目包括在CodePlex中,这个项目同时也利用了C++11中的新特点,...

  • C++ REST SDK

    C++ REST SDK是微软开源的一套客户端-服务器通信库,提供了URI构造/解析,JSON编解码,HTTP客户端、HTTP服务端,WebSocket客户端,流式传输,oAuth验证等C++类,方便C++语言编写的客户端程序访问互联网服务。...

  • VS2013 C++ Rest SDK 环境配置方法

    C++ REST SDK 是 Microsoft 的一个开源跨平台项目( 使用 MIT 开源协议 ), 其使用大量现代异步 C++ API 实现了一个基于 HTTP / HTTPS 协议的 服务端 / 客户端 组件,使用该组件,可以方便地进行高性能RESTful、...

  • VS2013 配置使用微软开源sdk: C++ REST SDK 及运行官方的 JSON例子

    VS2013 配置使用C++ REST SDK 及运行官方的 JSON例子

  • 使用C++ REST SDK开发简单的Web(HTTP)服务

    C++ REST SDK是微软开源的一套客户端-服务器通信库,提供了URI构造/解析,JSON编解码,HTTP客户端、HTTP服务端,WebSocket客户端,流式传输,oAuth验证等C++类,方便C++语言编写的客户端程序访问互联网服务。...

  • 【图像压缩】 GUI矩阵的奇异值分解SVD灰色图像压缩【含Matlab源码 4359期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

  • node-v0.9.2-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • 【尺寸检测】机器视觉图像目标尺寸测量【含Matlab源码 4087期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

  • 【图像加密】双随机相位图像加密解密【含Matlab源码 4118期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

  • 金融支付:浅析如何用定期资产设计活期产品.docx

    金融支付:浅析如何用定期资产设计活期产品.docx

  • Excel模板个人简历文艺清新单页06.docx

    Excel模板个人简历文艺清新单页06.docx

  • 【图像重建】 POCS算法超分辨率图像重建(含PSNR)【含Matlab源码 4404期】.zip

    Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描视频QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

  • 吹瓶转线清线(清场)记录表.xls

    吹瓶转线清线(清场)记录表.xls

Global site tag (gtag.js) - Google Analytics