Raspberry Pi Pico W 上的 MicroPython v1.22.2 出现 RP2040 MBEDTLS_ERR_SSL_CONN_EOF 错误

问题描述 投票:0回答:1

我的 Pico Pi W 已连接到 wifi - 已确认,因为我可以远程访问它,我在路由器中看到它,等等......

将此用作资源并直接复制/粘贴:https://github.com/micropython/micropython/blob/v1.22-release/examples/network/http_client_ssl.py

import socket
import ssl

# I connect to WiFi here

def main(use_stream=True):
    s = socket.socket()

    ai = socket.getaddrinfo("google.com", 443)
    print("Address infos:", ai)
    addr = ai[0][-1]

    print("Connect address:", addr)
    s.connect(addr)

    s = ssl.wrap_socket(s)
    print(s)

    if use_stream:
        # Both CPython and MicroPython SSLSocket objects support read() and
        # write() methods.
        s.write(b"GET / HTTP/1.0\r\n\r\n")
        print(s.read(4096))
    else:
        # MicroPython SSLSocket objects implement only stream interface, not
        # socket interface
        s.send(b"GET / HTTP/1.0\r\n\r\n")
        print(s.recv(4096))

    s.close()


main()
Address infos: [(2, 1, 0, '', ('142.250.179.238', 443))]
Connect address: ('142.250.179.238', 443)
Traceback (most recent call last):
  File "main.py", line 64, in <module>
  File "main.py", line 47, in main
OSError: (-29312, 'MBEDTLS_ERR_SSL_CONN_EOF')

# Line 47 =     s = ssl.wrap_socket(s)
# Line 64 =     main()

感觉应该是这么简单的事情

我也尝试过使用

urequests
,如
r = urequests.get("https://google.com")
,它返回相同的异常,在第一个示例中带或不带流(写/读与发送/接收),并使用不同的服务器/端点。

http ssl micropython
1个回答
0
投票

连接到 WiFi 时,导入有一个

gc.threshold(500)
,这似乎是问题所在。增加到
gc.threshold(5000)
(并使用
gc.disable()
进行测试以获得良好的测量结果)并且请求成功。

© www.soinside.com 2019 - 2024. All rights reserved.