flutter 扑动|物联网|SoftAp预配后Http请求失败

s5a0g9ez  于 2022-12-30  发布在  Flutter
关注(0)|答案(1)|浏览(160)

使用Android上的Flutter应用程序,我可以将ESP添加到我的WiFi并向其发送请求。
然而,供应和发送请求可以完美地独立工作,而不是直接连续。
目标是在应用程序内部执行整个连接处理:
我从连接到ESP自己的WiFi开始,接下来我提供我的本地WiFi凭据并通过SoftAp配置应用配置。之后,ESP和我的智能手机在同一个本地WiFi中,我可以发现ESP。我选择ESP并发送身份验证请求,这导致此错误消息:

E/flutter (31739): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: Connection failed
E/flutter (31739): #0      IOClient.send (package:http/src/io_client.dart:88:7)
E/flutter (31739): <asynchronous suspension>
E/flutter (31739): #1      ChopperClient.send (package:chopper/src/base.dart:305:23)
E/flutter (31739): <asynchronous suspension>
E/flutter (31739): #2      ESPDevice.sendRequest ([...filepath...])
E/flutter (31739): <asynchronous suspension>

发送请求将完美地工作...

  • 再次,在完全关闭应用程序并再次打开它之后。
  • 使用智能手机(未参与供应)。
  • 和 Postman 。
  • 如果通过Apple Home进行配置。
  • 如果应用程序是在使用 ESP SoftAP Prov 应用程序进行配置后新打开的。

无法发送请求...

  • 如果在应用程序中完成调配。
  • 如果应用程序在后台运行,同时使用 ESP SoftAP Prov 应用程序进行资源调配。

下面是我的(简化)代码:

await WiFiForIoTPlugin.connect(ssid, password: password);
await WiFiForIoTPlugin.forceWifiUsage(true);
Provisioning provisioning = Provisioning(transport: TransportHTTP(hostname: '192.168.4.1:80'), security: Security1(pop: pop));
await provisioning.establishSession();
await provisioning.sendWifiConfig(ssid: newSsid, password: newPassword);
await provisioning.applyWifiConfig();
await WiFiForIoTPlugin.disconnect();

流行音乐

await provisioning.dispose();
await WiFiForIoTPlugin.disconnect();

Package

我正在使用以下软件包:

  • bonsoir:^2.0.0(在我的WiFi中查找设备)
  • http:^0.13.5(发送请求)
  • 斩波器:^4.0.6(发送请求)
  • esp_供应_软连接:^1.0.3(将ESP添加到我的WiFi)
  • wifi_iot:^0.3.18(连接到ESP以在我的应用程序内提供WiFi凭据)
ie3xauqp

ie3xauqp1#

我通过在OnWillPop方法中添加以下代码行来解决问题:

await WiFiForIoTPlugin.forceWifiUsage(false);

不知怎么的,forcewifiUsage在使用WiFi时出现了问题。

相关问题