这是我的应用为了登录用户而执行的第一个请求。在android上,每个请求都可以正常运行,但是由于某种原因,在iOS上,它们似乎未执行。我已经在模拟器上设置了开发人员选项,以允许HTTP服务。我还在物理iPad上测试了该代码,它将无法执行请求。
在测试期间,我没有为此使用任何超时,并且如果触发请求后我让代码运行一段时间,则会收到此日志(它可能与此无关,但由于我不知道是什么,我也会附上它):
[C1.1 958047F2-81ED-4A34-AEDE-A23D2CD6B49F 172.20.129.134:51780<->216.58.211.42:443]
Connected Path: satisfied (Path is satisfied), interface: en0
Duration: 240.322s, DNS @0.002s took 0.008s, TCP @0.017s took 0.014s, TLS took 0.287s
bytes in/out: 4769/1077, packets in/out: 9/10, rtt: 0.016s, retransmitted packets: 1, out-of-order packets: 0
代码如下:
Future<LoginResponse> login(String login, String password, AppLocalizations locale) async {
final response = await http.post(_url, body: {
"module": _moduleLogin,
"user": login,
"pass": password,
"lang": locale.localeName
});
try{
EventManager manager = EventManager.getInstance();
manager.clearAllEvents();
}catch(e){
print(e);
}
if (response.statusCode == 200) {
return LoginResponse.fromJson(jsonDecode(response.body));
} else {
throw Exception('Failed to connect to webservice');
}}
在这一点上,我不知道是什么导致了这个问题。我正在使用http
软件包的最新版本。
这是我扑扑的医生的输出:
[✓] Flutter (Channel beta, v0.9.4, on Mac OS X 10.14 18A391, locale es-ES)
• Flutter version 0.9.4 at /Users/alex/Documents/Development/flutter
• Framework revision f37c235c32 (4 months ago), 2018-09-25 17:45:40 -0400
• Engine revision 74625aed32
• Dart version 2.1.0-dev.5.0.flutter-a2eb050044
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
• Android SDK at /Users/alex/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 27.0.3
• ANDROID_HOME = /Users/alex/Library/Android/sdk
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
• All Android licenses accepted.
[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 10.1, Build version 10B61
• ios-deploy 1.9.2
• CocoaPods version 1.5.3
[✓] Android Studio (version 3.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 26.0.1
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
[✓] IntelliJ IDEA Ultimate Edition (version 2018.1.1)
• IntelliJ at /Applications/IntelliJ IDEA.app
• Flutter plugin version 26.0.2
• Dart plugin version 181.4445.29
[✓] VS Code (version 1.30.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 2.21.1
[✓] Connected devices (1 available)
• iPhone XS • 5FB9A137-7AB3-46B5-94BC-9562B0E5E752 • ios • iOS 12.1 (simulator)
• No issues found!
答案 0 :(得分:0)
想出了一个解决方案,尽管我不知道为什么会起作用。
我将http
软件包替换为dio
软件包,并且在两个平台上都能正常工作。