Arduino Yun 未收到 Azure 的响应 API

Arduino Yun not getting response from Azure API

我正在尝试让我的 Arduino Yun 与我托管在 Azure 上的 API 对话。我想在未来做更复杂的事情,但目前我只是想通过 wifi 发出一个 GET 请求,使用一个整数作为参数。

我基本上只是使用 here 中找到的示例,但 url 已更改。该示例运行良好,据我所知,问题不在于我的板,而在于与 Azure 的交互。

HttpClient.get() returns 一个 int 作为响应(不是常规的 HTTP 响应代码,它是库中唯一的)。我最初得到 60,并更改我的 API 以接受 http 调用(而不仅仅是 https)修复了这个问题并让我得到了 0 的响应。 0 与我从有效的 Arduino 示例中得到的响应相同,但由于某种原因,我实际上没有在我的响应主体中得到任何东西,因为从未进入 client.available() 循环。

API 在我进入 chrome 中的 url 时按预期工作,因此由于 arduino 和 azure 如何相互交谈,问题出现在某个地方,但我对这两者都不太了解,无法弄清楚,而且我看的任何地方似乎都指向正确的方向。

非常感谢任何帮助,谢谢。

更新

这个问题,因为我没有开发板,所以只能给你大概的建议。

知道前提,测试代码中的sample接口没有问题,同时你也确认你的azureapi可以通过chrome正常访问

故障排除步骤:

  1. 修改示例代码,在控制台打印出示例代码中return编辑的内容

说明:这一步是为了确认您的开发板是否正常实例化了HttpClient,是否正常发送了http get请求。

  1. 第一步实现后,看开发板获取的return值是否还是60,此时修改url,替换azure的请求地址api 用于测试。

建议:使用returns字符串类型的简单测试界面,比如returning hello world文本信息,这样可以查看return直接在控制台上编辑数据。

  1. 如果returned值还是0,建议此时开启应用日志,在入口查看每次请求的日志,确保是否开发板向 Azure Web 应用程序发送 http 请求。日志会详细记录请求信息和结果。根据日志修改开发板代码

  2. 如果azure日志中没有http请求信息,或者测试示例代码一开始没有打印returned的内容,那我猜可能是开发板驱动或者您的产品没有安装调试好。建议重新检查设备是否正常

原始

Enable CORS 在如下门户网站上。

添加 *,然后保存以允许所有站点。

原因:

通过截图,我可以看到 http://127.0.0.1:port 想要 运行,我相信如果可行,它会通过 HttpClient 发送 http 请求,所以我们需要先启用 cors .