angular - 如何使用 Ionic 解决“(未知 url)的 Http 失败响应:599 undefined”?
问题描述
我在使用 Android 模拟器(Android 设备)时遇到此错误,在使用 Chrome 时没有显示错误。这是我的文件 AndroidManifest.xml:
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="io.ionic.starter" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:clearTaskOnLaunch="true" android:configChanges="orientation|keyboardHidden|screenSize" android:exported="false" android:name="com.google.zxing.client.android.CaptureActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="stateAlwaysHidden" />
<activity android:label="Share" android:name="com.google.zxing.client.android.encode.EncodeActivity" />
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
</manifest>
这是在文件 config.xml 中:
<platform name="android">
<preference name="android-minSdkVersion" value="22" />
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
</platform>
在我的 app.module.ts 的提供程序中使用它:
{provide: HttpBackend,
useClass: NativeHttpFallback,
deps: [Platform, NativeHttpBackend, HttpXhrBackend]
},
给出错误的方法是使用 http:HttpClient 的 GET 方法。有什么帮助吗?
谢谢
解决方案
“599(非正式约定)网络连接超时错误此状态代码未在任何 RFC 中指定,但某些 HTTP 代理使用它向代理前面的客户端发出代理后面的网络连接超时信号。”
1 Android studio 默认使用其代理服务器来处理虚拟设备。让我们继续检查这是否是我们的罪魁祸首。打开您正在使用的虚拟设备的设置菜单。然后在“设置”子菜单下,转到“代理”选项卡并取消选中“使用 Android Studio HTTP 代理设置”。将此更改为“无代理”,保存您的项目并重新启动。
2 查看您的模块页面并检查它们是否设置正确。
3 检查是否有一种简单的方法可以在 android studio 中对虚拟设备进行数据包转储。否则,您可以尝试运行一个小型代理服务器来记录网络流量并对其进行过滤以找到您的答案。您可以在我们在第 1 部分中看到的相同菜单中进行设置。
推荐阅读
- oracle - 如何打开 Oracle 表单/报告?
- xml - 如何从嵌套 xml 中获取在重复项中不使用结束标记的数据?
- javascript - 如何从变量参数值中找到对象的数组位置?
- c++ - 了解现代 OpenGL 中的代码绘制 .obj 并设置不同的位置
- asp.net-core-2.0 - asp.net core 2 web api任务运行后台任务
- python - 将颜色条添加到 Julia PyPlot 中的子图
- java - 更新mysql中其他行的位置
- websphere - Okta Authentication 与我的应用程序的集成在 apache tomcat 中成功运行,但在 IBM Websphere 8.5.5.15 中未成功运行
- javascript - 这些没有名字的 JSX 元素是什么意思?
- javascript - 将 Apollo GraphQL 查询解析为包含和属性字段的 Sequelize 查询