【问题标题】:HttpURLConnection on android don't work on API under level 24android 上的 HttpURLConnection 不适用于 24 级以下的 API
【发布时间】:2021-03-04 22:10:18
【问题描述】:

我完成了我的应用程序,它运行良好。 但我需要在 API 22 和 24 级以下运行它,我不知道为什么我与其他 API 的连接不起作用。

URL url = new URL(requeteUrl[0]);
urlConnection = (HttpURLConnection) url.openConnection(); // Open

Log.d("TEST", ""+urlConnection.getHeaderFields());
InputStream in = new BufferedInputStream(urlConnection.getInputStream()); // Stream
result = readStream(in); // Read stream

我的日志显示我有一个代码 400,但我的网址很好。 minSdkVersion 也设置为 21,所以这不是问题。

请给我一些帮助,我不想为此购买新设备。 谢谢

编辑:

我已经在清单中有<uses-permission android:name="android.permission.INTERNET"/>

在 zeg 的帮助下,我为我的服务器的 TLS1.2 添加了urlConnection.setSSLSocketFactory(new TLSSocketFactory());,但没有任何变化。

【问题讨论】:

    标签: android httpurlconnection


    【解决方案1】:

    您是否在您的 Manifest.xml 中为您的应用程序设置了互联网使用权限,就像这里解释的 https://developer.android.com/training/basics/network-ops/connecting

    【讨论】:

    • 感谢您的回复。是的,当然,我检查它是否已启用,正常情况下没有错误
    • 既然您说代码 400 Bad Request 这通常意味着您确实向服务器打开了一个请求,但它的格式错误,服务器响应说他无法处理它。您要打开的网址是什么?如果在浏览器中打开它会起作用吗?浏览器是否会自动将 url 更改为 https 之类的?
    • 我的网址在浏览器中工作,并且在 api 级别 24 和 > 中使用相同的代码。它已经在 https 中并且始终相同。 适用于所有 api 级别?
    • 非常感谢,当我的 wifi 恢复时,我会检查一下。希望它会奏效。
    • 是的,最后是 url 错误导致 api 22 更改空间中的 \n 类似这样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 2014-04-01
    相关资源
    最近更新 更多