阅读更多

2顶
0踩

开源软件

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

2013-02-28 16:04 by 副主编 wangguo 评论(3) 有8834人浏览
微软近日开源了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++语言编写的客户端程序访问互联网服务。...

  • 外加热强制循环蒸发器装配图(CAD).rar

    外加热强制循环蒸发器装配图(CAD).rar

  • 数控车床纵向进给系统设计.zip

    数控车床纵向进给系统设计.zip

  • vault_side_off_ominous.png

    j

  • 爬虫 bangumi名称和评论数

    爬虫 bangumi名称和评论数

  • 基于SpringBoot的垃圾分类回收系统(源码+数据库+万字文档)526

    基于SpringBoot的垃圾分类回收系统,系统包含两种角色:管理员、用户主要功能如下。 【用户功能】 首页:浏览垃圾分类回收系统信息。 个人中心:管理个人信息,查看历史记录和订单状态。 运输管理:查看运输信息,垃圾回收的时间和地点。 公告管理:阅读系统发布的相关通知和公告。 垃圾回收管理:查看垃圾回收的信息,回收类型和进度。 垃圾出库申请管理:提交和查看垃圾出库申请的状态。 【管理员功能】 首页:查看垃圾分类回收系统。 个人中心:管理个人信息。 管理员管理:审核和管理注册管理员用户的信息。 用户管理:审核和管理注册用户的信息。 运输管理:监管和管理系统中的运输信息。 公告管理:发布、编辑和删除系统的通知和公告。 垃圾回收管理:监管和管理垃圾回收的信息。 垃圾出库申请管理:审批和管理用户提交的垃圾出库申请。 基础数据管理:管理系统的基础数据,运输类型、公告类型和垃圾回收类型。 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue 后端技术:SpringBoot 三、运行环境 操作系统:Windows、macOS都可以 JDK版本:JDK1.8以上都可以 开发工具:IDEA、Ecplise、Myecplise都可以 数据库: MySQL5.7以上都可以 Maven:任意版本都可以

  • 这篇文章是台湾大学(NTU)计算机科学与信息工程系(CSIE)2021年秋季学期算法设计与分析课程的第一份作业(Homework#1)的具体要求和题目描述 以下是主要内容的总结:

    内容概要:本文档是台湾大学计算机科学与信息工程系2021年秋季学期《算法设计与分析》课程的第一次作业(Homework#1)。作业包含四道编程题和三道手写题,旨在考察学生对算法设计和分析的理解与应用能力。编程题涉及汉诺塔、数组计算、矩形点对、糖果分配等问题;手写题涵盖渐近符号证明、递归方程求解、幽灵腿游戏优化、不公平的卢卡斯问题等。文档详细描述了每个问题的具体要求、输入输出格式、测试用例以及评分标准。此外,还提供了编程技巧和注意事项,如避免延迟提交、正确引用资料、处理大输入文件等。 适合人群:具备一定编程基础的本科生或研究生,特别是修读过或正在修读算法设计与分析相关课程的学生。 使用场景及目标:①帮助学生巩固课堂所学的算法理论知识;②通过实际编程练习提高解决复杂问题的能力;③为后续更深入的学习和研究打下坚实的基础。 其他说明:此作业强调团队合作和个人独立思考相结合的重要性,鼓励学生在讨论后用自己的语言表达解决方案,并注明参考资料。对于编程题,特别提醒学生注意输入文件可能较大,建议采取适当的优化措施以确保程序运行效率。

  • 基于SpringBoot的铁路订票管理系统(源码+数据库+万字文档+ppt)528

    基于SpringBoot的铁路订票管理系统,系统包含两种角色:管理员、用户主要功能如下。 【用户功能】 首页:浏览铁路订票管理系统的主要信息。 火车信息:查看火车的相关信息,包括车次、出发地、目的地和票价等。 公告资讯:阅读系统发布的相关通知和资讯。 后台管理:进行系统首页、个人中心、车票预订管理、车票退票管理等操作。 个人中心:管理个人信息,查看订单历史记录等。 【管理员功能】 首页:查看铁路订票管理系统。 个人中心:修改密码、管理个人信息。 用户管理:审核和管理注册用户的信息。 火车类型管理:管理系统中的火车类型信息。 火车信息管理:监管和管理系统中的火车信息,添加、编辑、删除等。 车票预订管理:处理用户的车票预订请求。 车票退票管理:处理用户的车票退票请求。 系统管理:管理系统的基本设置,公告资讯、关于我们、系统简介和轮播图管理。 二、项目技术 编程语言:Java 数据库:MySQL 项目管理工具:Maven 前端技术:Vue 后端技术:SpringBoot 三、运行环境 操作系统:Windows、macOS都可以 JDK版本:JDK1.8以上都可以 开发工具:IDEA、Ecplise、Myecplise都可以 数据库: MySQL5.7以上都可以 Maven:任意版本都可以

  • 塑料架注射模具设计.rar

    塑料架注射模具设计.rar

Global site tag (gtag.js) - Google Analytics