Cul*_*tes 5 ssl android dart flutter
我正在使用Conveyor(一个 Visual Studio 2019 扩展)让我的 ASP.NET Core 可用于 android 模拟器。到目前为止,这一直很有效。我已经开发了 Xamarin 应用程序、UWP 应用程序,并且之前将它用于本机 Android 应用程序,它可以正常工作。但是在当前的 flutter 应用程序中,这不起作用。
Conveyor 确实提供了在 android 设备上安装证书的教程:https : //conveyor.cloud/Help/SSL
按照这些说明操作后,我可以正常加载网页:
这也已在 Windows(运行 Web 应用程序的机器)上完成,但这是由 Conveyor 扩展自动完成的,但是:
我运行此 Dart 代码来调用 API:
未来登录(字符串电子邮件,字符串密码)异步{
var response = await http
.post("$_url/login", body: {email: email, password: password});//_url= https://192.168.0.148:45455/api
if (response.statusCode == 200) {
var token = LoginResult.fromJson(json.decode(response.body));
_authToken = token.token;
return token.token;
}
throw Exception(
"Login failed: ${response.statusCode} body: ${response.body}");
Run Code Online (Sandbox Code Playgroud)
}
发生的异常:
HandshakeException (HandshakeException: Handshake error in client (OS Error: CERTIFICATE_VERIFY_FAILED: cannot get local issuer certificate(handshake.cc:354)))
请注意354数字与我之前在其他地方看到的错误不同。我真的找不到这些异常的具体错误编号。
flutter doctor似乎运行良好,不得不采取额外的步骤来解决许可证问题:
C:\>flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[?] Flutter (Channel stable, v1.12.13+hotfix.8, on Microsoft Windows [Version 10.0.18363.657], locale nl-NL)
[?] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[?] Android Studio (version 3.6)
[?] VS Code, 64-bit edition (version 1.42.1)
[?] Connected device (1 available)
• No issues found!
Run Code Online (Sandbox Code Playgroud)
已经发现相关问题:
http.post()并避免任何代码解决方法。我不认为这是一个“解决方案”。最后一个包括使用IOClient. 同样在这里,我不认为这是解决方案。我宁愿找到一个完全避免任何代码调整的解决方案。所以我想重点是 Conveyor 正确调整它或正确运行 flutter 以接受来自 convoyer 的证书。
可以在下面flutter run --verbose找到整个日志。我看到 flutter 团队在每个 github 问题上都要求这样做,所以也许它可以解决任何问题。
[ +27 ms] executing: [C:\flutter\] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +70 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[ ] 0b8abb4724aa590dd0f429683339b1e045a1594d
[ ] executing: [C:\flutter\] git describe --match v*.*.* --first-parent --long --tags
[ +43 ms] Exit code 0 from: git describe --match v*.*.* --first-parent --long --tags
[ ] v1.12.13+hotfix.8-0-g0b8abb472
[ +8 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref --symbolic @{u}
[ +45 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[ ] origin/stable
[ ] executing: [C:\flutter\] git ls-remote --get-url origin
[ +40 ms] Exit code 0 from: git ls-remote --get-url origin
[ ] https://github.com/flutter/flutter.git
[ +78 ms] executing: [C:\flutter\] git rev-parse --abbrev-ref HEAD
[ +43 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[ ] stable
[ +100 ms] executing: C:\Users\USER\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[ +25 ms] Exit code 0 from: C:\Users\USER\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[ ] List of devices attached
emulator-5554 device product:sdk_gphone_x86 model:Android_SDK_built_for_x86 device:generic_x86
transport_id:1
[ +17 ms] C:\Users\USER\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell getprop
[ +54 ms] Artifact Instance of 'AndroidMavenArtifacts' is not required, skipping update.
[ +6 ms] Artifact Instance of 'AndroidInternalBuildArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'IOSEngineArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'FlutterWebSdk' is not required, skipping update.
[ +3 ms] Artifact Instance of 'WindowsEngineArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'MacOSEngineArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'LinuxEngineArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'LinuxFuchsiaSDKArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'MacOSFuchsiaSDKArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'FlutterRunnerSDKArtifacts' is not required, skipping update.
[ ] Artifact Instance of 'FlutterRunnerDebugSymbols' is not required, skipping update.
[ +109 ms] Found plugin url_launcher at C:\flutter\.pub-cache\hosted\pub.dartlang.org\url_launcher-4.2.0+3\
[ +82 ms] Found plugin url_launcher at C:\flutter\.pub-cache\hosted\pub.dartlang.org\url_launcher-4.2.0+3\
[ +40 ms] Generating
C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\android\app\src\main\java\io\flutter\plugins\GeneratedPluginReg
istrant.java
[ +46 ms] ro.hardware = ranchu
[ +32 ms] Using hardware rendering with device Android SDK built for x86. If you get graphics artifacts, consider
enabling
software rendering with "--enable-software-rendering".
[ +17 ms] Launching lib\main.dart on Android SDK built for x86 in debug mode...
[ +7 ms] executing: C:\Users\USER\AppData\Local\Android\sdk\build-tools\29.0.3\aapt dump xmltree
C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\build\app\outputs\apk\app.apk AndroidManifest.xml
[ +17 ms] Exit code 0 from: C:\Users\USER\AppData\Local\Android\sdk\build-tools\29.0.3\aapt dump xmltree
C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\build\app\outputs\apk\app.apk AndroidManifest.xml
[ +2 ms] N: android=http://schemas.android.com/apk/res/android
E: manifest (line=2)
A: android:versionCode(0x0101021b)=(type 0x10)0x1
A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1c
A: android:compileSdkVersionCodename(0x01010573)="9" (Raw: "9")
A: package="com.example.p2portfolio" (Raw: "com.example.p2portfolio")
A: platformBuildVersionCode=(type 0x10)0x1c
A: platformBuildVersionName=(type 0x10)0x9
E: uses-sdk (line=7)
A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c
E: uses-permission (line=14)
A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
E: application (line=22)
A: android:label(0x01010001)="p2portfolio" (Raw: "p2portfolio")
A: android:icon(0x01010002)=@0x7f080000
A: android:name(0x01010003)="io.flutter.app.FlutterApplication" (Raw:
"io.flutter.app.FlutterApplication")
A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory" (Raw:
"androidx.core.app.CoreComponentFactory")
E: activity (line=28)
A: android:theme(0x01010000)=@0x7f0a0000
A: android:name(0x01010003)="com.example.p2portfolio.MainActivity" (Raw:
"com.example.p2portfolio.MainActivity")
A: android:launchMode(0x0101001d)=(type 0x10)0x1
A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
E: intent-filter (line=35)
E: action (line=36)
A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
E: category (line=38)
A: android:name(0x01010003)="android.intent.category.LAUNCHER" (Raw:
"android.intent.category.LAUNCHER")
E: meta-data (line=45)
A: android:name(0x01010003)="flutterEmbedding" (Raw: "flutterEmbedding")
A: android:value(0x01010024)=(type 0x10)0x2
E: activity (line=49)
A: android:theme(0x01010000)=@0x01030007
A: android:name(0x01010003)="io.flutter.plugins.urllauncher.UrlLauncherPlugin$WebViewActivity" (Raw:
"io.flutter.plugins.urllauncher.UrlLauncherPlugin$WebViewActivity")
A: android:exported(0x01010010)=(type 0x12)0x0
[ +8 ms] executing: C:\Users\USER\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell -x logcat -v
time -t 1
[ +48 ms] Exit code 0 from: C:\Users\USER\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell -x
logcat -v time -t 1
[ +2 ms] --------- beginning of main
03-08 12:13:03.586 E/GnssHAL_GnssInterface( 1764): gnssSvStatusCb: b: input svInfo.flags is 8
[ +8 ms] executing: C:\Users\USER\AppData\Local\Android\sdk\platform-tools\adb.exe version
[ +1 ms] executing: C:\Users\USER\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 logcat -v time -T
03-08 12:13:03.586
[ +44 ms] Android Debug Bridge version 1.0.41
Version 29.0.6-6198805
Installed as C:\Users\USER\AppData\Local\Android\sdk\platform-tools\adb.exe
[ +4 ms] executing: C:\Users\USER\AppData\Local\Android\sdk\platform-tools\adb.exe start-server
[ +63 ms] Building APK
[ +20 ms] Running Gradle task 'assembleDebug'...
[ +3 ms] gradle.properties already sets `android.enableR8`
[ +5 ms] Using gradle from C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\android\gradlew.bat.
[ +7 ms] executing: C:\Program Files\Android\Android Studio\jre\bin\java -version
[ +101 ms] Exit code 0 from: C:\Program Files\Android\Android Studio\jre\bin\java -version
[ +4 ms] openjdk version "1.8.0_212-release"
OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)
[ +4 ms] executing: [C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\android\]
C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\android\gradlew.bat -Pverbose=true
-Ptarget=C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\lib\main.dart -Ptrack-widget-creation=true
-Pfilesystem-scheme=org-dartlang-root -Ptarget-platform=android-x86 assembleDebug
[ +592 ms] Welcome to Gradle 5.6.2!
[ +2 ms] Here are the highlights of this release:
[ +1 ms] - Incremental Groovy compilation
[ +3 ms] - Groovy compile avoidance
[ +1 ms] - Test fixtures for Java projects
[ ] - Manage plugin versions via settings script
[ +1 ms] For more details see https://docs.gradle.org/5.6.2/release-notes.html
[+1184 ms] > Task :app:compileFlutterBuildDebug UP-TO-DATE
[ +3 ms] > Task :app:packLibsflutterBuildDebug UP-TO-DATE
[ +1 ms] > Task :app:preBuild UP-TO-DATE
[ +3 ms] > Task :app:preDebugBuild UP-TO-DATE
[ +1 ms] > Task :url_launcher:preBuild UP-TO-DATE
[ +3 ms] > Task :url_launcher:preDebugBuild UP-TO-DATE
[ +1 ms] > Task :url_launcher:compileDebugAidl NO-SOURCE
[ +3 ms] > Task :app:compileDebugAidl NO-SOURCE
[ +1 ms] > Task :url_launcher:packageDebugRenderscript NO-SOURCE
[ +4 ms] > Task :app:compileDebugRenderscript NO-SOURCE
[ +1 ms] > Task :app:checkDebugManifest UP-TO-DATE
[ +2 ms] > Task :app:generateDebugBuildConfig UP-TO-DATE
[ +1 ms] > Task :app:cleanMergeDebugAssets
[ +1 ms] > Task :app:mergeDebugShaders UP-TO-DATE
[ +2 ms] > Task :app:compileDebugShaders UP-TO-DATE
[ +1 ms] > Task :app:generateDebugAssets UP-TO-DATE
[ +3 ms] > Task :url_launcher:mergeDebugShaders UP-TO-DATE
[ +56 ms] > Task :url_launcher:compileDebugShaders UP-TO-DATE
[ +2 ms] > Task :url_launcher:generateDebugAssets UP-TO-DATE
[ +3 ms] > Task :url_launcher:packageDebugAssets UP-TO-DATE
[ +1 ms] > Task :app:mergeDebugAssets
[ +292 ms] > Task :app:copyFlutterAssetsDebug
[ +2 ms] > Task :app:mainApkListPersistenceDebug UP-TO-DATE
[ +3 ms] > Task :app:generateDebugResValues UP-TO-DATE
[ +1 ms] > Task :app:generateDebugResources UP-TO-DATE
[ +1 ms] > Task :url_launcher:generateDebugResValues UP-TO-DATE
[ +2 ms] > Task :url_launcher:compileDebugRenderscript NO-SOURCE
[ +1 ms] > Task :url_launcher:generateDebugResources UP-TO-DATE
[ +2 ms] > Task :url_launcher:packageDebugResources UP-TO-DATE
[ ] > Task :app:mergeDebugResources UP-TO-DATE
[ +1 ms] > Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
[ ] > Task :url_launcher:checkDebugManifest UP-TO-DATE
[ +81 ms] > Task :url_launcher:processDebugManifest UP-TO-DATE
[ +3 ms] > Task :app:processDebugManifest UP-TO-DATE
[ +3 ms] > Task :url_launcher:parseDebugLibraryResources UP-TO-DATE
[ +1 ms] > Task :url_launcher:generateDebugRFile UP-TO-DATE
[ +2 ms] > Task :app:processDebugResources UP-TO-DATE
[ +3 ms] > Task :url_launcher:generateDebugBuildConfig UP-TO-DATE
[ +2 ms] > Task :url_launcher:javaPreCompileDebug UP-TO-DATE
[ +1 ms] > Task :url_launcher:compileDebugJavaWithJavac UP-TO-DATE
[ +1 ms] > Task :url_launcher:bundleLibCompileDebug UP-TO-DATE
[ +86 ms] > Task :app:compileDebugKotlin UP-TO-DATE
[ +2 ms] > Task :app:javaPreCompileDebug UP-TO-DATE
[ +3 ms] > Task :app:compileDebugJavaWithJavac UP-TO-DATE
[ +1 ms] > Task :app:compileDebugSources UP-TO-DATE
[ +1 ms] > Task :app:processDebugJavaRes NO-SOURCE
[ +3 ms] > Task :url_launcher:processDebugJavaRes NO-SOURCE
[ +1 ms] > Task :url_launcher:bundleLibResDebug UP-TO-DATE
[ +3 ms] > Task :app:mergeDebugJavaResource UP-TO-DATE
[ +6 ms] > Task :url_launcher:bundleLibRuntimeDebug UP-TO-DATE
[ +4 ms] > Task :url_launcher:createFullJarDebug UP-TO-DATE
[ +1 ms] > Task :app:checkDebugDuplicateClasses UP-TO-DATE
[ +64 ms] > Task :app:desugarDebugFileDependencies UP-TO-DATE
[ +2 ms] > Task :app:mergeExtDexDebug UP-TO-DATE
[ +3 ms] > Task :app:transformClassesWithDexBuilderForDebug UP-TO-DATE
[ +1 ms] > Task :app:mergeDexDebug UP-TO-DATE
[ +1 ms] > Task :app:validateSigningDebug UP-TO-DATE
[ +1 ms] > Task :app:signingConfigWriterDebug UP-TO-DATE
[ +3 ms] > Task :app:mergeDebugJniLibFolders UP-TO-DATE
[ +1 ms] > Task :url_launcher:mergeDebugJniLibFolders UP-TO-DATE
[ +5 ms] > Task :url_launcher:mergeDebugNativeLibs UP-TO-DATE
[ +5 ms] > Task :url_launcher:stripDebugDebugSymbols UP-TO-DATE
[ +4 ms] > Task :url_launcher:transformNativeLibsWithIntermediateJniLibsForDebug UP-TO-DATE
[ +63 ms] > Task :app:mergeDebugNativeLibs UP-TO-DATE
[ +2 ms] > Task :app:stripDebugDebugSymbols UP-TO-DATE
[ +2 ms] Compatible side by side NDK version was not found.
[ +1 ms] > Task :app:packageDebug UP-TO-DATE
[ ] > Task :app:assembleDebug UP-TO-DATE
[ ] > Task :url_launcher:extractDebugAnnotations UP-TO-DATE
[ ] > Task :url_launcher:mergeDebugGeneratedProguardFiles UP-TO-DATE
[ +2 ms] > Task :url_launcher:mergeDebugConsumerProguardFiles UP-TO-DATE
[ ] > Task :url_launcher:prepareLintJarForPublish UP-TO-DATE
[ +2 ms] > Task :url_launcher:mergeDebugJavaResource UP-TO-DATE
[ +1 ms] > Task :url_launcher:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
[ ] > Task :url_launcher:transformNativeLibsWithSyncJniLibsForDebug UP-TO-DATE
[ ] > Task :url_launcher:bundleDebugAar UP-TO-DATE
[ ] > Task :url_launcher:compileDebugSources UP-TO-DATE
[ +2 ms] > Task :url_launcher:assembleDebug UP-TO-DATE
[ ] BUILD SUCCESSFUL in 2s
[ +2 ms] 58 actionable tasks: 3 executed, 55 up-to-date
[ +350 ms] Running Gradle task 'assembleDebug'... (completed in 3,1s)
[ +30 ms] calculateSha: LocalDirectory:
'C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\build\app\outputs\apk'/app.apk
[ +41 ms] calculateSha: reading file took 38us
[ +445 ms] calculateSha: computing sha took 443us
[ +7 ms] ? Built build\app\outputs\apk\debug\app-debug.apk.
[ +7 ms] executing: C:\Users\USER\AppData\Local\Android\sdk\build-tools\29.0.3\aapt dump xmltree
C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\build\app\outputs\apk\app.apk AndroidManifest.xml
[ +21 ms] Exit code 0 from: C:\Users\USER\AppData\Local\Android\sdk\build-tools\29.0.3\aapt dump xmltree
C:\Users\USER\source\repos\P2PortfolioApp\P2PortfolioApp\build\app\outputs\apk\app.apk AndroidManifest.xml
[ +2 ms] N: android=http://schemas.android.com/apk/res/android
E: manifest (line=2)
A: android:versionCode(0x0101021b)=(type 0x10)0x1
A: android:versionName(0x0101021c)="1.0.0" (Raw: "1.0.0")
A: android:compileSdkVersion(0x01010572)=(type 0x10)0x1c
A: android:compileSdkVersionCodename(0x01010573)="9" (Raw: "9")
A: package="com.example.p2portfolio" (Raw: "com.example.p2portfolio")
A: platformBuildVersionCode=(type 0x10)0x1c
A: platformBuildVersionName=(type 0x10)0x9
E: uses-sdk (line=7)
A: android:minSdkVersion(0x0101020c)=(type 0x10)0x10
A: android:targetSdkVersion(0x01010270)=(type 0x10)0x1c
E: uses-permission (line=14)
A: android:name(0x01010003)="android.permission.INTERNET" (Raw: "android.permission.INTERNET")
E: application (line=22)
A: android:label(0x01010001)="p2portfolio" (Raw: "p2portfolio")
A: android:icon(0x01010002)=@0x7f080000
A: android:name(0x01010003)="io.flutter.app.FlutterApplication" (Raw:
"io.flutter.app.FlutterApplication")
A: android:debuggable(0x0101000f)=(type 0x12)0xffffffff
A: android:appComponentFactory(0x0101057a)="androidx.core.app.CoreComponentFactory" (Raw:
"androidx.core.app.CoreComponentFactory")
E: activity (line=28)
A: android:theme(0x01010000)=@0x7f0a0000
A: android:name(0x01010003)="com.example.p2portfolio.MainActivity" (Raw:
"com.example.p2portfolio.MainActivity")
A: android:launchMode(0x0101001d)=(type 0x10)0x1
A: android:configChanges(0x0101001f)=(type 0x11)0x40003fb4
A: android:windowSoftInputMode(0x0101022b)=(type 0x11)0x10
A: android:hardwareAccelerated(0x010102d3)=(type 0x12)0xffffffff
E: intent-filter (line=35)
E: action (line=36)
A: android:name(0x01010003)="android.intent.action.MAIN" (Raw: "android.intent.action.MAIN")
E: category (line=38)
跳过ssl认证问题的最佳方法。
class MyHttpOverrides extends HttpOverrides{
@override
HttpClient createHttpClient(SecurityContext context){
return super.createHttpClient(context)
..badCertificateCallback = (X509Certificate cert, String host, int port)=> true;
}
}
void main(){
HttpOverrides.global = new MyHttpOverrides();
runApp(new MyApp());
}
Run Code Online (Sandbox Code Playgroud)
小智 0
你用过 requests 包吗?
https://pub.dev/packages/requests
这里是例子:
var r = await Requests.get('https://expired.badssl.com/', **verify: false**);
r.raiseForStatus();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2868 次 |
| 最近记录: |