gpt4 book ai didi

android - 超过 3g 的 HttpsURLConnection server_name 已损坏(?)

转载 作者:太空宇宙 更新时间:2023-11-03 13:45:49 26 4
gpt4 key购买 nike

根据 Google 的建议,我正在为我的 api 级别 15 项目使用 HttpsURLConnection。

我的测试用例很简单:

URL url = new URL(STATS);
HttpsURLConnection we = (HttpsURLConnection)url.openConnection();
InputStream in = new BufferedInputStream(we.getInputStream());

当我通过 WiFi 连接到我的服务器时,一切正常。

当我通过 3g 连接到我的服务器时,我的 Apache 日志中出现错误:

Hostname 202.139.83.152 provided via SNI and hostname myserver.com provided via HTTP are different

现在 202.139.83.152 地址是我的移动提供商 APN 的代理地址。

我已经转储了两个请求的“Client Hello”数据包,并且 Handshake Protocol/Extension:server_name 字段包含 wifi 请求的目标主机名 (myserver.com),但包含 3g 请求的 APN 代理地址。

这是:

  • 我编码有误
  • 我的手机 (Samsung Galaxy S3) 配置不正确
  • 我在我的服务器上配置不正确
  • 我的移动提供商正在做一些坏事
  • Android 库中的错误

我的服务器为此虚拟主机使用专用 IP 地址。

我可以使用 DefaultHttpClient 的简单子(monad)类成功发出超过 3g 的请求,但由于我的最低 API 级别是 15,我希望沿着“首选”路径走下去。

我们将非常欢迎任何建议。我花了太多时间试图让这个基本的东西工作。

负责该项目 iPhone 开发的同事摇了摇头,因为他的代码“开箱即用”。

最佳答案

原来这是一个known issue .

我找到了一个解决方法,尽管我不确定它有多稳健。到目前为止对我有用的是在建立连接时禁用代理:

HttpsURLConnection http = (HttpsURLConnection) url.openConnection(Proxy.NO_PROXY);

我希望这对某人有帮助。

关于android - 超过 3g 的 HttpsURLConnection server_name 已损坏(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11844044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com