gpt4 book ai didi

ssl - 为什么我在向 HTTPS 服务器发出 POST 请求时收到 WRONG_VERSION_NUMBER?

转载 作者:行者123 更新时间:2023-12-03 09:28:18 29 4
gpt4 key购买 nike

我的应用程序向服务器发出大量 HTTP 请求。在其上安装 SSL 证书后,该应用程序崩溃了。

我的服务器运行 Ubuntu,Nginx 托管 PHP 代码(使用证书和工作)并“代理”用 NodeJS 编写的应用服务器代码。在我更改为 HTTPS 之前它一直有效。

我的 POST 请求典型用法:

var jsonRequest = //Some JSON.
Map<String, String> headers = {'Content-type': 'application/json'};
var response = await http.post(urls['auth'], body: jsonRequest,headers: headers);

我得到的错误:
E/flutter (25875): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: HandshakeException: Handshake error in client (OS Error: 
E/flutter (25875): WRONG_VERSION_NUMBER(tls_record.cc:242))

E/flutter (25875): #0 IOClient.send (package:http/src/io_client.dart:33:23)
E/flutter (25875): <asynchronous suspension>
E/flutter (25875): #1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:169:38)
E/flutter (25875): <asynchronous suspension>
E/flutter (25875): #2 BaseClient.post (package:http/src/base_client.dart:54:7)
E/flutter (25875): #3 post.<anonymous closure> (package:http/http.dart:70:16)

...

最佳答案

正如评论中提到的@Patrick,这是 TLS 不匹配的结果。
一般经验法则:如果服务器 (API) 基于 https (TLS) 那么客户端应该使用 https 进行连接.如果服务器使用 http (非 TLS) 那么客户端应该使用 http连接到它。
在您的情况下,您尝试访问的 API 似乎是 http因此从你的 flutter 应用程序中输入你应该使用:

Uri.http(baseUrl, endPointUrl)

关于ssl - 为什么我在向 HTTPS 服务器发出 POST 请求时收到 WRONG_VERSION_NUMBER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57517116/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com