如何解决通过 esp-idf
编辑:我意识到问题出在证书上,我无法将其添加到此示例中。我切换到具有证书(不适用于电报)的 esp_http_client,并在其中使用 https 示例。我必须更改证书才能使其工作,我使用的是通用电报机器人中用于 Arduino 的证书,然后我能够通过 GET 与页面进行通信,我现在正在尝试使用 POST。
编辑 2:我能够发送 POST 请求。 Here 我让示例与电报机器人通信。
我正在尝试使用 ESP-IDF 中的 https_request 示例与我的电报机器人通信。在漫长的道路上,我希望 ESP32 向机器人发送数据,但现在我只是想与它进行通信。我相信我了解示例的工作原理,因此我进行了以下更改:
#define WEB_SERVER "https://api.telegram.org"
#define WEB_PORT "443"
#define WEB_URL "https://api.telegram.org/bot<your-bot-token>/getme"
来自示例的请求是:
static const char *REQUEST = "GET " WEB_URL " HTTP/1.0\r\n"
"Host: "WEB_SERVER"\r\n"
"User-Agent: esp-idf/1.0 esp32\r\n"
"\r\n";
它应该响应如下:
{'id': 123456789,'first_name': 'Test','is_bot': True,'username': 'SlackOverflow','can_join_groups': True,'can_read_all_group_messages': False,'supports_inline_queries': True}
错误发生在第 68 行,带有 esp_tls_conn_http_new:
E (3110) esp-tls-mbedtls: mbedtls_ssl_handshake returned -0x2700
E (3120) esp-tls: Failed to open new connection
注意:我只是找到了 this 使用普通 mbedTLS 套接字执行 HTTPS GET 的示例,但不知道它是否与我使用的示例有很大不同。
注意 2: 要了解我使用这些定义的示例,并且一切正常:
#define WEB_SERVER "www.swapi.dev"
#define WEB_PORT "443"
#define WEB_URL "https://swapi.dev/api/people/1/"
注意 3:我看到有些人使用证书(例如 this 和 this),但我不确定它们是什么或如何/何时使用使用它,我相信它适用于 https,但我不确定。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。