【发布时间】:2021-12-13 21:32:31
【问题描述】:
我正在尝试下载在私有 Github 存储库中生成的 firmware.bin 文件。我有代码可以找到正确的资产 url 来下载文件,并且根据 Github 说明,accept 标头需要设置为accept: application/octet-stream 才能获取二进制文件。我只得到 JSON 作为响应。如果我通过邮递员运行相同的请求,我将得到一个二进制文件作为正文。我尝试使用 HTTPClient 下载它,我得到了相同的 JSON 请求。似乎没有按要求设置标头,以告诉 Github 发送二进制内容,因为我刚刚收到 JSON。至于 ArduinoOTA 抽象,我什至看不到如何尝试设置标头,并且在深入研究 esp_https_ota 函数和 http_client 函数时,似乎没有办法为任何这些更高级别的抽象设置标头,因为 http_config据我所知,对象没有标题的位置。我可能会提交一个功能请求以允许这样做,但我是这个编程领域的新手,想先检查一下我是否遗漏了一些东西。
代码返回 JSON,而不是二进制。 URL 是资产的 github rest api url(在邮递员中工作)
HTTPClient http2;
http2.setAuthorization(githubname,githubpass);
http2.addHeader("Authorization","token MYTOKEN");
http2.addHeader("accept","application/octet-stream");
http2.begin( firmwareURL, GHAPI_CERT); //Specify the URL and certificate
【问题讨论】:
标签: arduino httpclient esp32 ota