如何使用Intel Galileo板连接到REST服务?
我需要一个独立于PC客户端的解决方案。
只要通过以太网或Wi-Fi进行互联网访问,代码就会执行
如果您还没有倾向于Node项目,那么最简单的解决方案就是使用Win32 API。
GitHub上的ms-iot示例应用程序页面最近更新,引用了MSDN上的WinSock示例。我对WinSock客户端示例代码做了一些更改,以便将数据发布到Cosm(现在的Xively),后者使用RESTneneneba API。
Winsock客户端代码的相关更改为:
// replace nnnnn with your Feed ID, and xxxxxxxxxxx with your API key!
char *sendbuf = "PUT /v2/feeds/nnnnn.csv HTTP/1.1rnHost: api.cosm.comrnX-ApiKey: xxxxxxxxxrnUser-Agent: WinGalileornContent-Length: 18rnContent-Type: text/csvrnConnection: closernrn";
char *databuf = "GalileoTest,123.45rn";
. . .
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)。这是一个来自微软的库,作为CodePlex上的开源项目发布。目前只有2.2版本。可以在伽利略上使用。使用说明如下:http://ms-iot.github.io/content/Casablanca.htm
如果你想使用Casablanca通过REST访问Azure,GitHub上有一个库:Azure Storage Client library for C++。它允许您针对Microsoft Azure Storage构建应用程序。
但是,如果你想在伽利略上使用它,你会遇到一些问题。如果你想知道如何避免/解决问题,你可以在我的博客上找到完整的说明http://kardum.net/iot/intel-galileo-windows-application-azure-storage/
我希望这对你有帮助。顺致敬意,Ivan
您可以使用Arduino HTTP客户端访问REST服务。
另一种选择是在Galileo板上安装nodejs,并使用基于nodejs的REST或HTTP客户端库。
要安装nodejs,只需直接下载windowsx32二进制文件,无需正式安装。还要下载最新的npm.zip
,并在具有node.exe
的同一文件夹中提取。
现在您已经准备好使用restler
REST客户端库了。。。只需安装npm install restler
在restler页面的末尾有一个例子,将粘贴复制到rest_test.js中并运行node rest_test.js
——你应该在Galileo上有一个简单的rest客户端!