【发布时间】:2014-09-11 04:16:01
【问题描述】:
如何使用英特尔 Galileo 开发板连接到 REST 服务?
我需要独立于 PC 客户端的解决方案。
只要有通过以太网或 Wi-Fi 访问互联网,代码就会执行
【问题讨论】:
标签: windows intel intel-galileo iot windowsondevices
如何使用英特尔 Galileo 开发板连接到 REST 服务?
我需要独立于 PC 客户端的解决方案。
只要有通过以太网或 Wi-Fi 访问互联网,代码就会执行
【问题讨论】:
标签: windows intel intel-galileo iot windowsondevices
如果您还没有倾向于 Node 项目,最直接的解决方案是使用 Win32 API。
最近更新了ms-iot Sample Apps page on GitHub,引用了WinSock sample on MSDN。我对 WinSock 客户端示例代码进行了一些更改,以将数据发布到使用 REST API 的 Cosm(现在为 Xively)。
Winsock客户端代码的相关改动有:
// replace nnnnn with your Feed ID, and xxxxxxxxxxx with your API key!
char *sendbuf = "PUT /v2/feeds/nnnnn.csv HTTP/1.1\r\nHost: api.cosm.com\r\nX-ApiKey: xxxxxxxxx\r\nUser-Agent: WinGalileo\r\nContent-Length: 18\r\nContent-Type: text/csv\r\nConnection: close\r\n\r\n";
char *databuf = "GalileoTest,123.45\r\n";
. . .
iResult = getaddrinfo("www.cosm.com", 80, &hints, &result);
. . .
// Send the HTML
iResult = send(ConnectSocket, sendbuf, (int)strlen(sendbuf), 0);
. . .
// send the data
iResult = send(ConnectSocket, databuf, (int)strlen(databuf), 0);
在过去的几个月里,Arduino 库已添加到 ms-iot Galileo SDK 中,因此我怀疑正在努力移植 WebClient 和以太网库。密切关注 GitHub 页面。
【讨论】:
有一个可用的 C++ SDK 可以调用 REST 服务。它是 C++ REST SDK(代号 Casablanca)。它是 Microsoft 的一个库,作为 CodePlex 上的开源项目发布。 目前只有 2.2 版。可以在伽利略上使用。使用说明在这里:http://ms-iot.github.io/content/Casablanca.htm
如果您想使用 Casablanca 通过 REST 访问 Azure,GitHub 上有一个库:用于 C++ 的 Azure 存储客户端库。它允许您针对 Microsoft Azure 存储构建应用程序。
但是,如果你想在 Galileo 上使用它,你会遇到一些问题。如果您想知道如何避免/解决问题,您可以在我的博客上找到整个说明 http://kardum.net/iot/intel-galileo-windows-application-azure-storage/
我希望这会对你有所帮助。 最好的祝福, 伊万
【讨论】:
您可以使用 Arduino HTTP client 访问 REST 服务。
另一种选择是在 Galileo 板上安装 nodejs,并使用基于 nodejs 的 REST 或 HTTP 客户端库。
要安装nodejs,只需download the windows x32 binary directly 不需要正式安装。还有download the latest npm.zip 并解压到与node.exe 相同的文件夹中。
现在您已准备好使用restler REST client library...只需安装npm install restler
restler 页面末尾有一个示例,复制粘贴到 rest_test.js 并运行 node rest_test.js 你应该有一个在 Galileo 上工作的简单 REST 客户端!
【讨论】: