首页 > 解决方案 > 如何使用 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 方法。有什么帮助吗?

谢谢

标签: angulartypescripthttpionic-framework

解决方案


“599(非正式约定)网络连接超时错误此状态代码未在任何 RFC 中指定,但某些 HTTP 代理使用它向代理前面的客户端发出代理后面的网络连接超时信号。”

1 Android studio 默认使用其代理服务器来处理虚拟设备。让我们继续检查这是否是我们的罪魁祸首。打开您正在使用的虚拟设备的设置菜单。然后在“设置”子菜单下,转到“代理”选项卡并取消选中“使用 Android Studio HTTP 代理设置”。将此更改为“无代理”,保存您的项目并重新启动。

IMG Android 虚拟设备代理菜单

2 查看您的模块页面并检查它们是否设置正确。

3 检查是否有一种简单的方法可以在 android studio 中对虚拟设备进行数据包转储。否则,您可以尝试运行一个小型代理服务器来记录网络流量并对其进行过滤以找到您的答案。您可以在我们在第 1 部分中看到的相同菜单中进行设置。


推荐阅读