发送以下 http 获取请求时出现错误。我使用颤振 2.5

Posted

技术标签:

【中文标题】发送以下 http 获取请求时出现错误。我使用颤振 2.5【英文标题】:I get an error while I send the following http get request. I use flutter 2.5 【发布时间】:2021-12-20 15:08:54 【问题描述】:

这是导致错误的代码行

var currencyData = await http.get(Uri.parse('https://rest.coinapi.io/v1/exchangerate/BTC/USD?apikey=------------------------'));

这是错误日志

E/flutter (20209): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: HandshakeException: Handshake error in client (OS Error: 
E/flutter (20209):  CERTIFICATE_VERIFY_FAILED: certificate has expired(handshake.cc:359))
E/flutter (20209): #0      _SecureFilterImpl._handshake (dart:io-patch/secure_socket_patch.dart:101:69)
E/flutter (20209): #1      _SecureFilterImpl.handshake (dart:io-patch/secure_socket_patch.dart:143:25)
E/flutter (20209): #2      _RawSecureSocket._secureHandshake (dart:io/secure_socket.dart:794:54)
E/flutter (20209): #3      _RawSecureSocket._tryFilter (dart:io/secure_socket.dart:924:19)
E/flutter (20209): <asynchronous suspension>
E/flutter (20209): 
D/mali_winsys(20209): new_window_surface returns 0x3000,  [720x1280]-format:1
D/libEGL  (20209): eglInitialize EGLDisplay = 0xd867f7c4
I/OpenGLRenderer(20209): Initialized EGL, version 1.4
D/mali_winsys(20209): new_window_surface returns 0x3000,  [720x1280]-format:1
I/Timeline(20209): Timeline: Activity_idle id: android.os.BinderProxy@a6bd033 time:158054628
E/flutter (20209): [ERROR:flutter/shell/common/shell.cc(93)] Dart Unhandled Exception: HandshakeException: Handshake error in client (OS Error: 
E/flutter (20209):  CERTIFICATE_VERIFY_FAILED: certificate has expired(handshake.cc:359)), stack trace: #0      _SecureFilterImpl._handshake (dart:io-patch/secure_socket_patch.dart:101:69)
E/flutter (20209): #1      _SecureFilterImpl.handshake (dart:io-patch/secure_socket_patch.dart:143:25)
E/flutter (20209): #2      _RawSecureSocket._secureHandshake (dart:io/secure_socket.dart:794:54)
E/flutter (20209): #3      _RawSecureSocket._tryFilter (dart:io/secure_socket.dart:924:19)
E/flutter (20209): <asynchronous suspension>
E/flutter (20209): 

【问题讨论】:

【参考方案1】:

这是一个 https 协议问题。由于 url 工作正常,更像是您的设备存在问题。尝试调整其时钟可能会解决此问题,因为 https 需要客户端和服务器都具有相同的当前时间。 如果此问题仍然存在,请尝试在其他设备上运行您的代码。

【讨论】:

我在另一台设备上运行它并且它工作正常。有没有办法在我自己的设备上运行它?我真的需要在这个设备上运行它。 你可以试试这个解决方案来解决这个问题:***.com/a/61312927/5818075

以上是关于发送以下 http 获取请求时出现错误。我使用颤振 2.5的主要内容,如果未能解决你的问题,请参考以下文章

从 Angular 向 Asp.net 发送 post 请求时出现错误 405

向本地服务器发送请求时出现 Flutter Web XMLHttpRequest 错误

使用 Google Adwords API 时出现解组错误

使用 Auth Headers 发送 axios get 请求时出现 401 错误

发送 post 请求时出现 CORS 错误,但在 Spring Boot 和 Reactjs 中未获取请求

通过 Firebase 函数发送电子邮件时出现 Firebase SendGrid 错误 - 错误:错误请求