问题标签 [cpprest-sdk]
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.
c++ - 获取卡萨布兰卡HTTP请求的IP
我有一个小型服务器,它使用 Casablanca / cpprestsdk 监听 http 请求。我已经看到其他 API 提供了检索客户端 IP 的功能,但是在搜索 Internet 和 sdk 之后,嗯..我在这里。
有什么帮助吗?
c++ - 如何在 cpprest 中为 http_client 选择接口
我正在为我的 http 客户端应用程序使用 cpprest sdk。运行此应用程序的工作站有 2 个网络接口/适配器:eth0 和 eth1。如何在 http_client 代码中指定应该使用哪个接口来发送 http 请求和接收响应?
c++ - 如何绕过Windows上的主机文件获取真实IP地址
我在 C:\Windows\System32\drivers\etc\hosts 中添加了主机 IP 映射
我尝试了 getaddrinfo 和 DnsQuery,都不起作用。
DsnQuery 代码来自此示例。结果是:
主机www.facebook.com的IP地址是192.168.1.105
但是,命令“nslookup”工作正常:
C:\Users\abc>nslookup www.facebook.com
服务器:public1.114dns.com
地址:114.114.114.114
非回复:
名称:www.facebook.com
地址:200:2:2e52:ae44::
c++ - 使用 STL 容器作为成员时,cpprestsdk 处理程序类崩溃
我使用 cpprestsdk 编写了一个简单的代码。我使用 map ( records
) 作为 CommandHandler 类的成员,并在公共方法 ( has_record()
) 中对其进行操作。
它在handler.open().wait()
运行之前工作,但是当我在请求中调用它时,它崩溃了!
这是我的代码:
json - 使用 cpprest-sdk 的 json 服务的 POST 问题,连接到 jeasyui
我正在开发一个 Web 服务来为jeasyui异步树提供 json 对象。我的 HTML 有以下内容:
假设 wxyz 是我服务器的 IP 地址。根据他们的 PHP json 服务的 jeasyui 文档,我需要返回一个字典对象数组,其中包含id
、text
和state
. 好的,到目前为止一切顺利。我正在尝试使用 Microsoft 的 cpprest-sdk 在 c++ 中开发 json 服务。我在 RHEL 7.2 上编译并安装了这个库,并且能够使用它编写一些基本服务。问题在于(我认为)与发送回客户端的 json 编码有关。
这是一个使用 cpprest-sdk 编写的全功能示例 json 服务器,它处理 POST 请求并使用符合 jeasyui 预期协议的字典对象的单个填充数组进行回复:
这可以干净地编译,我可以使用以下命令在 linux 服务器上启动服务:
为了帮助调试,我一直在使用curl
直接在同一个 linux 服务器上充当 POST 客户端。我一直在使用以下命令发送内容长度为 0 的 POST 请求:
curl 的输出如下:
来自我的服务的控制台消息如下:
前两行对应TRACE
于代码中的调用。中间部分是由这段代码生成的:
基于 curl 输出,它是一个字典对象数组,只有一个条目长,我希望这个服务可以与客户端上的jeasyui javascript 一起正常工作。但是,事实并非如此。我的异步树永远不会填充,我什么也看不到。
我怀疑编码有问题,所以我使用 web2py 编写了另一个服务来测试它是否可以在那里工作。我的 default.py 控制器中存在以下代码:
在修改我的客户端easyui-tree
HTML 以指向 web2py URL 后,它完美地填充并且我可以看到该节点。我用 curl 打了 web2py service.json 代码,只是为了看看输出可能会有什么不同:
除了内容标题完全不同之外,我怀疑有一行可能与它有关:
在对 cpprest 服务的调用中,curl 输出的标头不包含charset=utf-8
在其中。如果我使用开关将 curl 输出转储到文件中-o
,我看不出编码之间有任何明显的区别。我唯一能看到的 json 格式不同的是一些额外的空格和排序:
我无法控制 json 字典的发送顺序,但我怀疑这与它有什么关系。值条目前面的额外空格似乎也无关紧要。
我已经在 microsoft.github.io/cpprestsdk/index.html 上翻阅了 cpprest 文档,但找不到与设置输出编码相关的任何内容。有许多覆盖http_request::reply
包括用于设置内容类型的选项,我已经走上了用 json 正文和内容类型的硬编码字符串调用它们的道路,json/application; charset=utf-8
但都无济于事。无论如何,我看不到这些覆盖如何与 json::value 对象一起使用,因此我认为这不是此 cpprest 库的最佳路径或可行使用。
jeasyui javascript 代码似乎是故意混淆的,我不太相信能够弄清楚它对 POST 调用的回复做了什么。也许熟悉 jeasyui 的人可以指出调试异步 POST 的可行方法?
请帮忙!
c++11 - HTTP 服务器 cpprest POST 处理文件流
我在谷歌上找到了这段代码,它基本上通过 cpprest 以异步模式将文件上传到 HTTP 服务器。如果我有足够的资源(我是 PPL 和 cpprest 的新手,并且在 msdn 上阅读了很多网页),我创建一个从 out.txt 打开 ifstream 的任务,然后创建另一个使用文件的 PUT 方法发出 HTTP 请求的任务流作为上一个任务的输入的主体。
如果它是正确的......从服务器端:1)如何使用文件流管理 PUT 方法?2)我需要打开一个与输入文件同名的文件,是否可以从正文 HTTP PUT 中提取此信息,或者我需要将此信息放入“out.txt”中?
c++ - C++ REST SDK 编译错误(Centos 6)
我正在关注本教程:https ://github.com/Microsoft/cpprestsdk/wiki/How-to-build-for-Linux 。目前我已完成第 4 步,在编译 SDK 时遇到了一些问题:
现在在谷歌上尝试解决这个问题几个小时。我不确定如何解决此错误或导致它的原因。任何帮助将不胜感激。
rest - 使用 CPPREST SDK 将图像上传到 HipChat
我正在尝试使用 CPPREST SDK 将图像上传到 HipChat,但没有成功。有将图像上传到其他服务器的示例,但 HipChat API 似乎更复杂(对此我非常陌生,我无法填补空白......)。
来自 HipChat REST API 文档(https://www.hipchat.com/docs/apiv2/method/share_file_with_room):
与房间共享文件。
将请求格式化为 multipart/related 与内容类型 application/json 的单个部分和包含您的文件的第二部分。
注意:包含该文件的部分必须在该部分的 Content-Disposition 标头中包含 name="file"。包含消息的 application/json 部分是可选的,可以排除,但文件部分是必需的
示例请求:
标题:
内容类型:多部分/相关;边界=边界123456
身体:
--boundary123456 内容类型:应用程序/json;字符集=UTF-8
内容处置:附件;名称="元数据"
{"message": "查看此文件上传!"}
--boundary123456 内容类型:图片/png
内容处置:附件;名称="文件"; 文件名="上传.png"
“文件内容在这里”
--boundary123456--
我正在尝试使用 set_body() 方法: void web::http::http_request::set_body(const concurrency::streams::istream& stream, ....) 但我不知道如何插入文件流在所有上述复合体内部。set_body() 的文档说:“这不能与设置请求正文的任何其他方式结合使用”。我是否需要将文件读入字符串并将其嵌入到“文件内容位于此处”的位置,并使用其他 set_body() 方法之一,而不是将 set_body() 方法与文件流一起使用?
谢谢, 奥弗
c++ - 卡萨布兰卡 cpprestsdk 的 400 错误请求
上面的代码给出了以下输出:
你能告诉我我的参数有什么问题吗?