首页 > 解决方案 > Arduino Yun 没有得到 Azure API 的响应

问题描述

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

我基本上只是使用更改了 url的此处找到的示例。该示例运行良好,据我所知,问题不在于我的董事会,而在于与 Azure 的交互。

HttpClient.get() 返回一个 int 作为响应(不是常规的 HTTP 响应代码,它对于库来说是唯一的)。我最初得到了 60,并且将我的 API 更改为接受 http 调用(而不仅仅是 https)解决了这个问题,并让我得到了 0 的响应。0 与我从工作 Arduino 示例中得到的响应相同,但由于某种原因,我实际上并没有在我的响应正文中得到任何内容,因为从未进入 client.available() 循环。

当我在 chrome 中访问 url 时,API 按预期工作,所以问题出现在某个地方,因为 arduino 和 azure 是如何相互交谈的,但我对任何一个都不太了解,而且我看不到任何地方为我指明正确的方向。

任何帮助将不胜感激,谢谢。

标签: azurearduinoazure-web-app-servicearduino-yun

解决方案


更新

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

知道了前提,测试代码中的示例界面没有问题,同时你也确认你的azure api可以通过chrome正常访问了。

故障排除步骤:

  1. 修改示例代码,在控制台打印出示例代码中返回的内容。

    在此处输入图像描述

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

  1. 执行完第一步后,看看开发板得到的返回值是否还是60,此时修改url,替换azure api的请求地址进行测试。

建议:使用返回字符串类型的简单测试接口,比如返回hello world文本信息,这样就可以直接在控制台查看返回的数据。

  1. 如果返回值还是0,建议此时开启应用日志,查看portal中每个请求的日志,以确保开发板是否向azure web app发送http请求。日志会详细记录请求信息和结果。根据日志修改开发板代码。

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

私人的

Enable CORS在门户网站上,如下所示。

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

在此处输入图像描述

原因:

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


推荐阅读