问题标签 [casablanca]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2003 浏览

c++ - 使用 OneDrive Rest API 进行块下载

这是我第一次在 StackOverflow 上写作。我的问题如下。

我正在尝试基于 cpprest sdk CasaBlanca 项目编写 OneDrive C++ API:

https://casablanca.codeplex.com/

特别是,我目前正在对 OneDrive 文件执行读取操作。

实际上,我已经能够使用以下代码下载整个文件:

这段代码基本上是在计算机上下载整个文件(file_id 是我要下载的文件的 id)。当然,我可以从文件中提取输入流并使用它来读取文件。

但是,如果文件很大,这可能会给我带来问题。我的想法是在调用者读取文件时下载文件的一部分(如果他回来,则缓存该部分)。

那么,我的问题是:

是否可以使用 OneDrive REST + cpprest 下载存储在 OneDrive 上的文件的一部分。我发现分块上传文件似乎显然是不可能的(OneDrive 的分块上传(可恢复上传)?)。下载也是如此吗?

提前感谢您的宝贵时间。

此致,

朱塞佩

0 投票
0 回答
902 浏览

c++ - 调试 C++ 链接器错误

首先,我将提供有关我遇到的问题的具体细节,然后我将介绍我在尝试调试问题时从 nm 获得的有趣结果。希望纳米大师能够解释这些结果。

我已将 Casablanca C++ REST SDK 静态编译到库 libcpprest.a。这很好用,但是当我使用以下命令链接我的代码时:

我得到错误:

似乎 _extract_json(bool) 是在 http_msg.cpp 中定义的,当我查看制作 libcpprest.a 的详细输出时,它似乎也已编译。现在,运行 nm -e --demangle libcpprest.a 我得到以下两行(由数千行分隔):

我是使用 nm 的新手,但在我看来 _extract_json(bool) 既在代码部分中,也在未定义符号列表中。有没有更好的方法来解释 nm 结果?

顺便说一句,当我将 cpprest 编译为动态库并链接到它时,一切正常,但由于各种原因,我必须创建 dcodr_service 的静态二进制文件。

编辑:跟进来自πάντα ῥεῖ的评论,_extract_json(bool) 在以下上下文中使用:

也就是说,它在 lambda 函数中使用。这会导致链接器错误吗?

0 投票
2 回答
2616 浏览

c++ - 复制和粘贴 .so 文件不适用于链接器

我在我的主目录中编译并构建了 casablanca c++ rest 库,我的必要 .so 文件的绝对路径是 .so 文件/home/dev/casablanca/Release/build.release/Binaries/libcpprest.so。我想要做的是简单地cp将 .so 文件传递/usr/lib/..​​到默认 lib 搜索的路径,../以便我可以轻松地将其与以下命令链接:

编译得很好,但是当我运行 ./a.out 时,我得到了典型的运行时错误:

即使在将 libcpprest.so 的默认路径添加到 LD_LIBRARY_PATH 之后。

但是,如果我将最初创建二进制文件的目录链接到:

我猜我不能简单地将 .so 对象移动到我想添加它的原因是编译器以某种方式保持对它的引用。如何将此二进制文件安装在不同的路径中?

0 投票
1 回答
1275 浏览

c++ - 使用 VS2013 express 在 windows 8.1 上构建 cpprest (Casablanca)

我正在尝试构建 sdk 但无济于事。我的目标是按照此处的说明构建库的静态版本: How to statically link the CPP REST SDK,但我什至没有进入静态部分,项目的构建按原样失败。

这是我所做的:

  1. 克隆了回购
  2. 运行 setup_ps_env_VS2013.ps1 (不确定是否有必要)
  3. 使用VS2013 express打开casablanca120.desktop.sln
  4. 运行构建解决方案
    编译似乎工作,但链接失败:

    错误 LNK1104:无法打开文件 'MY_WORSPACE\cpprest\Binaries\Win32\Debug\cpprest120d_xp_2_2.lib'
    MY_WORSPACE\cpprest\Release\samples\BingRequest\BingRequest120.xp\LINK BingRequest120.xp

我根本没有尝试为 XP 构建它,所以我尝试了同样的方法,但使用 casablanca120.WinRT.sln 解决方案,当我尝试构建时,我得到:

任何想法我做错了什么?

0 投票
1 回答
932 浏览

c++ - C ++ casablanca vs Mozilla NSPR vs Facebook 愚蠢

有没有人评估这些库作为跨平台库的优缺点?

我了解 NSPR 非常古老且稳定,但它与 Microsoft Casablanca C++ rest SDK 和 Facebook 的愚蠢相比如何。

Microsoft Casablanca 能够在 iOS 和 Android 上运行。

但是,如果我正在寻找仅支持 OSX、Linux 和 Windows 的产品,我应该选择哪一个,为什么?

还有其他我应该看的跨平台库吗?

0 投票
2 回答
549 浏览

android - Android 上的卡萨布兰卡链接器错误

我按照此处的说明为 Android 构建了 casablanca:How to build and setup for Android on Linux (2.3+)

我将已编译的库移动到我的 Android 项目中,并按照此处的说明链接了依赖于 casablanca 的模块:如何在 Android (2.3+) 上使用 C++ REST SDK

但是,我收到多个链接器错误。

例如,当尝试使用

我明白了,

当尝试使用

我明白了,

我正在用 clang 编译我的 Android 项目。

我在 Linux-64 VM 上构建,我的 Android 项目在 Windows-64 机器上。但是,当尝试在 Linux 上为 Android 构建 casablanca 共享库时,我也遇到了多个链接器错误。

我怀疑有些代码是用 libstdc++ 编译的,有些是用 libc++ 编译的。通过查看构建脚本,我可以看到 clang 被用于 boost 和 casablanca,但我也看到包含指向 gcc 标头的路径。我也很好奇为什么我在链接器输出(在 Windows 上)上看到 /sources/cxx-stl/gnu-libstdc++/4.8/include/ 与我的 Linux VM 路径的引用。

任何有关如何让 casablanca 在 Android 上正确链接的见解将不胜感激。

谢谢。

(我在这里发布了同样的问题。)

0 投票
1 回答
1575 浏览

c++ - 如何在 Casablanca REST API 中检索授权标头

我有以下功能来检查授权标头。

目前我已经放入了一个临时令牌,只是为了测试,虽然我可以看到如何检查 Authorization 标头是否存在 - 目前尚不清楚如何检索该标头的值。

任何人都知道如何使用 Casablanca REST API 来检索标头。

0 投票
1 回答
4639 浏览

c++ - 使用 C++ REST SDK Casablanca 发送 HTTP POST 请求以更新文件内容

我正在尝试使用 C++ rest sdk 更新露天服务器中文件的内容。我正在使用 alfresco CMIS url 发送请求。更具体地说,它是 Alfresco CMIS 浏览器绑定。我必须坚持浏览器绑定而不是原子绑定。

当我发送请求时,它总是更新文件的版本而不是内容。我正在发送请求正文中的内容。下面是我的代码

如果我将 cmisaction 更改为 createDocument,则相同的代码可用于上传新文件。请给我一个解决方案,通过 C++ rest SDK 更新驻留在 alfresco 中的文件的内容

0 投票
1 回答
181 浏览

c++ - 在 Windows 服务器上使用 casablanca

casablanca c++ Rest API 是否支持 windows 服务器作为平台?

http://casablanca.codeplex.com/documentation

我在文档中没有看到它。

有没有人试过这个?

0 投票
1 回答
309 浏览

c++ - 在同一个 Visual Studio 解决方案中使用 \MDd 和 \MTd?

我有一个庞大的预先存在的代码库,这取决于许多都使用 \MTd 作为运行时设置的外部库。此代码库在此配置中稳定且经过良好测试。我希望保持原样。

我正在尝试将一个新的外部库集成到代码库中(如果重要的是 Casablanca REST SDK),但我刚刚发现它似乎需要与 \MDd 设置一起使用。当我发现这个问题时,我在 std:shared_ptr 深处遇到了一些奇怪的无法追踪的错误。当我将我的孤立项目更改为使用 \MDd casablanca 时效果更好。

Visual Studio 似乎不允许我有不同的设置,它似乎是一个解决方案中的全部或全部内容?

有谁知道解决这种情况的好方法?有什么建议么?我什至不知道该把注意力集中在哪里?1) 我可以伪造 Visual Studio 并同时使用吗?如果是这样,我真的应该这样做吗?2)或者我应该尝试获得一个工作的卡萨布兰卡静态库?在讨论论坛上似乎不可能?3) 还是我应该硬着头皮把整个解决方案移到 \MDd?4)最后,我应该减少损失并尝试不同的客户端服务器框架吗?快速搜索显示我可以使用 Boost Asio、Google Client API、WinSock 的 windows c++ 客户端服务器解决方案?

这是我的第一个客户端服务器实现,非常欢迎提出意见。