Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 互联网许可在奥利奥和馅饼中不起作用_Java_Android_Android 8.0 Oreo - Fatal编程技术网

Java 互联网许可在奥利奥和馅饼中不起作用

Java 互联网许可在奥利奥和馅饼中不起作用,java,android,android-8.0-oreo,Java,Android,Android 8.0 Oreo,我是新来的。我构建了一个简单的应用程序,它向服务器发送一些数据并接收响应 该应用程序在安卓N之前的设备上运行良好,但在O和p上不起作用。问题似乎在于互联网许可。我已经检查过了,应用程序在o和p上运行时没有向服务器发送任何数据。请让我知道,如果我需要寻求任何特定的互联网接入许可 我在舱单上加了这个 <uses-permission android:name="android.permission.INTERNET" /> 任何帮助都将不胜感激。这可能是因为您使用的是http。从A

我是新来的。我构建了一个简单的应用程序,它向服务器发送一些数据并接收响应

该应用程序在安卓N之前的设备上运行良好,但在O和p上不起作用。问题似乎在于互联网许可。我已经检查过了,应用程序在o和p上运行时没有向服务器发送任何数据。请让我知道,如果我需要寻求任何特定的互联网接入许可

我在舱单上加了这个

<uses-permission android:name="android.permission.INTERNET" />


任何帮助都将不胜感激。

这可能是因为您使用的是
http
。从Android O开始,您需要使用
https
而不是
http
,否则您将有一个错误
明文http流量*不允许
。因此,您需要创建一个配置来允许此操作。你可以参考它

文件详情:

注意:本节中的指南仅适用于目标应用程序 Android 8.1(API级别27)或更低版本。从Android 9(API)开始 级别28),默认情况下禁用明文支持

打算仅使用secure Manager连接到目标的应用程序 连接可以选择不支持明文(使用未加密的 HTTP协议(而不是HTTPS)连接到这些目标。此选项 有助于防止由于URL更改而导致应用程序意外倒退 由外部源(如后端服务器)提供。看见
NetworkSecurityPolicy.isClearTextTrafficAllowed()
了解更多详细信息

例如,应用程序可能希望确保所有到的连接
secure.example.com
始终通过HTTPS来保护敏感的 来自敌对网络的流量

res/xml/network\u security\u config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">secure.example.com</domain>
    </domain-config>
</network-security-config>

secure.example.com


您还可以在
AndroidManifest.xml
中使用
android:usesCleartextTraffic=“true”
作为开发模式,但不应在发布模式中使用它。更多详细信息,请参见以下摘录:

在生产中阻止明文通信

保护您的应用程序的安装群不受 cleartext流量,声明android:usesCleartextTraffic=“false” 应用程序中应用程序元素的属性 AndroidManifest.xml。这声明应用程序不应该使用 cleartext网络流量和使平台网络堆叠 Android棉花糖阻止应用程序中的明文流量。例如 如果您的应用程序意外尝试通过明文登录用户 HTTP请求时,请求将被阻止,并且用户的身份和 密码不会泄漏到网络

您不必将应用程序的minSdkVersion或targetSdkVersion设置为 23(安卓棉花糖)使用安卓:UseSlearTextTraffic。关于老年人 在平台上,此属性被忽略,因此没有任何效果

请注意,WebView尚不支持此功能

在某些情况下,明文通信仍然可能离开或关闭 进入应用程序。例如,套接字API忽略明文策略 因为它不知道它发送或接收的数据是否可以 被归类为明文。另一方面,Android平台HTTP堆栈 另一方面,遵守政策,因为他们知道流量是否为明文

谷歌AdMob也是为了遵守这一政策而建立的。当你的应用程序 声明它不使用明文通信,只使用HTTPS广告 应该提供给应用程序

鼓励第三方网络、广告和分析库添加 支持这项政策。他们可以查询明文通信策略 通过NetworkSecurityPolicy类


如果您的URL以
http
开头,那么您必须在Android Pie中使用它,即API级别28

android:usesCleartextTraffic="true"
在应用程序标记内的清单中
作为属性,在AndroidManifest.xml文件中添加以下代码行:

android:usesCleartextTraffic="true"
尽管如此,这会给你一个警告:


现在这个问题可以解决了。但是您应该尽快迁移到“HTTPS”。

URL以http://开头您需要在应用程序标记内的清单文件中添加以下属性

android:usesCleartextTraffic="true"

您在尝试向服务器发送数据时一定遇到错误。请用日志更新你的问题。它必须工作,检查回答,让我们看看结果是什么…我没有在logcat中得到任何错误,也没有工作。我用截击25来发送数据,但它没有发送。事实就是这样。非常感谢。很乐意帮忙:)太好了!请接受解决您问题的答案之一。为什么我们不应该在发布版本中使用第二个解决方案?如果你能提供一些关于这方面的文档,那就太好了。非常感谢你!