【问题标题】:Retrofit 2 with http on android在 android 上使用 http 改造 2
【发布时间】:2021-04-21 09:00:25
【问题描述】:

到目前为止,我已经阅读了很多资源和教程,但仍然没有找到我需要的解决方案。 问题是我使用 Retrofit 2 的应用程序不会向我自己的服务器发送请求。经验表明,请求不仅仅发送到使用 http 的地址。请求已发送到 https。

为了解决这个问题,我将 SSL 密钥添加到我的服务器(我的服务器是用 Spring 编写的)。现在至少正在发送请求。但是,由于我生成的密钥没有被确认,应用程序仍然不想请求我需要的链接。

问题:如何配置 Retrofit 2 以使其与 http 一起使用?

UPD:有来自项目的一些代码的 repo:https://github.com/Parocq/AuthScreenApp

【问题讨论】:

  • 请分享您尝试过的代码。
  • 在清单中启用明文流量

标签: android http retrofit2


【解决方案1】:

通过在清单中启用明文流量解决了问题。 添加了两个字符串: xmlns:tools="http://schemas.android.com/tools" 和 android:usesCleartextTraffic="true"

<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.xxx.xxx.xxx">

<application
    ...
    android:usesCleartextTraffic="true"
    ...
</application></manifest>

【讨论】:

    【解决方案2】:

    我查看了改造文档https://square.github.io/retrofit/,还快速查看了他们的源代码,据我所知,其中并没有真正关心 HTTP 与 HTTPS 的内容。

    我建议您在运行 Pie 之前版本的 Android 的设备或模拟器上尝试您的应用,以验证您的纯 HTTP 请求是否按预期工作。如果是这样,那么我认为下一步是按照@Bek 的建议仔细检查您的网络安全配置。如果您还没有找到这篇文章,可以从这里开始:https://developer.android.com/training/articles/security-config

    我知道这充其量只是一个“部分答案”(即使是这样),但我决定根据 SO 答案提示发布它。我希望它至少可以帮助您摆脱困境或帮助您改进您的问题,并且可以在某个时候更新您问题的实际具体信息。

    更新: 看起来你找到了真正的答案,那很快! https://stackoverflow.com/a/65751722/1245561

    【讨论】:

      猜你喜欢
      • 2018-01-17
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      相关资源
      最近更新 更多