HttpURLConnection 在 Android 2.x 中工作正常,但在 4.1 中不行:未发现身份验证挑战

2024-01-12

我有一些典型的代码,它们使用 HttpURLConnection 来获取带有 URL 的文件。 它们在 android 1.x 和 2.x 中运行良好。但在Android 4.1中失败了!

我在网上搜索了一下,但几乎没有找到类似的信息。 有人愿意帮忙调查这个问题吗?

private String mURLStr; 
private HttpURLConnection mHttpConnection;

...

url = new URL(mURLStr);

...

mHttpConnection = (HttpURLConnection) url.openConnection();
mHttpConnection.setDoOutput(true);
mHttpConnection.setRequestMethod("GET");

...

InputStream is = mHttpConnection.getInputStream();

getInputStream 方法抛出异常:

08-01 15:56:48.856: W/System.err(13613): java.io.IOException: No authentication challenges found
08-01 15:56:48.856: W/System.err(13613):      at libcore.net.http.HttpURLConnectionImpl.getAuthorizationCredentials(HttpURLConnectionImpl.java:427)
08-01 15:56:48.866: W/System.err(13613):      at libcore.net.http.HttpURLConnectionImpl.processAuthHeader(HttpURLConnectionImpl.java:407)
08-01 15:56:48.866: W/System.err(13613):      at libcore.net.http.HttpURLConnectionImpl.processResponseHeaders(HttpURLConnectionImpl.java:356)
08-01 15:56:48.866: W/System.err(13613):      at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:292)
08-01 15:56:48.866: W/System.err(13613):      at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168)
...

我目前面临着同样的问题。在 4.1 Jelly Bean 上,在 HttpURLConnection 上调用 getResponseCode() 时,我收到 IOException“未发现身份验证挑战”。

我上网搜索了一下Android源代码有什么变化,发现如下: 4.0.4(工作):https://bitbucket.org/seandroid/libcore/src/7ecbe081ec95/luni/src/main/java/libcore/net/http/HttpURLConnectionImpl.java https://bitbucket.org/seandroid/libcore/src/7ecbe081ec95/luni/src/main/java/libcore/net/http/HttpURLConnectionImpl.java4.1.1(不工作):https://bitbucket.org/seandroid/libcore/src/6b27266a2856/luni/src/main/java/libcore/net/http/HttpURLConnectionImpl.java https://bitbucket.org/seandroid/libcore/src/6b27266a2856/luni/src/main/java/libcore/net/http/HttpURLConnectionImpl.java

正如我们在 4.1 JB 中看到的,方法 getAuthorizationCredentials() 抛出 IOException。如果响应代码是 401 或 407,它会使用 HeaderParser.parseChallenges(..) 解析在响应中找到的质询标头。如果返回的 List 为空,则会引发异常。

https://bitbucket.org/seandroid/libcore/src/6b27266a2856/luni/src/main/java/libcore/net/http/HeaderParser.java https://bitbucket.org/seandroid/libcore/src/6b27266a2856/luni/src/main/java/libcore/net/http/HeaderParser.java

我们目前正在调查到底是什么原因导致该列表为空,但怀疑我们的服务器可能在挑战标头中使用realm = ...而不是realm =“...”。缺少引号可能是导致此问题的原因。我们必须进一步调查是否确实如此以及我们是否可以使其发挥作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HttpURLConnection 在 Android 2.x 中工作正常,但在 4.1 中不行:未发现身份验证挑战 的相关文章

  • 未找到 Gradle DSL 方法:“versionCode()”

    构建我的 Android 项目时遇到问题 我使用Grgit https github com ajoberstar grgit填写versionCode and versionName在 gradle 中 一切工作正常 直到我将 Andro
  • 如何使用 SPNEGO 和 CAS 获取 LDAP 用户属性?

    使用 CAS 5 3 x 和 SPNEGO Kerberos 身份验证 如何获取除 SAMAccountName 之外的更多用户属性 当我只使用 标准 LDAP 身份验证处理程序时 我可以放置以下配置 cas authn ldap 0 pr
  • 如何改变android中menuItem的背景颜色?

    我正在以编程方式将菜单项添加到菜单中 我想在选择特定项目时添加背景颜色 如何为 menuItem 添加背景 您的回答将不胜感激 虽然其他答案提供了更改样式 这会影响all菜单项 据我了解 需要更改一个菜单项 我建议你使用android ac
  • 查找回收器视图中的第一个可见项目是否是列表的第一项

    我有一个包含 13 个数据项的回收器视图 我想知道列表中的第一项是否可见 我知道像这样的方法findFirstVisibleItemPosition and findLastVisibleItemPosition但他们没有说明第一个可见项目
  • Mailgun POST /messages API 总是抛出 401 禁止

    我正在尝试使用改造库在 Android 中发送 Mailgun POST messages API 请求 以下是改装要求 HTTP POSThttps api key xxx v3 sandboxxxx messages https api
  • MI设备中即使应用程序被杀死,如何运行后台服务

    您好 我正在使用 alaram 管理器运行后台服务 它工作正常 但对于某些 mi 设备 后台服务无法工作 我使用了服务 但它无法工作 如何在 mi 中运行我的后台服务 MI UI有自己的安全选项 所以你需要的不仅仅是上面提到的粘性服务 你需
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • Android SDK 中可用的所有“android.intent.action”操作的详尽列表是什么?

    大家好 我想知道标准 Android SDK 中定义的所有 Intent 操作是否有详尽的参考 我正在考虑完整的 android intent action someaction 名称 而不是 Intent 类中定义的方便别名操作的限制列表
  • OpenCV InRange 参数

    我在 Android 上使用 OpenCV 来实时查找特定颜色的圆圈 我的第一步是仅保留与我正在寻找的定义颜色相对应的像素 在本例中为红色或绿色 示例图像 https i stack imgur com CIozU jpg 为此 我正在使用
  • 下载图像并显示它

    应用程序的主要目的是下载和显示图像 但是当我尝试启动应用程序时它崩溃了 这是我的代码 private DownloadImageTask task protected void onCreate Bundle savedInstanceSt
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 在 Android 中使用 iText 读取或打开 PDF 文件

    我是 Android 应用程序开发新手 使用 iText 我完成了 PDF 创建并在创建的文件上写入 现在我想阅读该 PDF 文件 如何使用 iText 打开或阅读 PDF 文件 例子将是可观的 那么提前 哪个是渲染 PDF 文件的最佳库
  • Facebook LoginActivity 未正确显示

    我有一个使用 Facebook 登录的应用程序 我有 FacebookSDK 并且使用 com facebook LoginActivity 问题是 在 10 英寸平板电脑上 当显示软键盘时 活动无法正确显示 我使用的是 Samsung G
  • 有没有办法在Android上创建一个三角形按钮?

    有没有办法创建一个三角形的按钮 我知道我可以将三角形图像作为背景 但这将使三角形之外的区域可单击 有没有办法固定按钮角 X 和 Y 以便我可以将其变成三角形 您可以覆盖OnTouch http developer android com r
  • 模拟器:进程已完成,退出代码为 134(被信号 6:SIGABRT 中断)

    我最近刚刚开始在 Mac 上下载 Android Studio 版本 3 0 1 但收到以下错误 模拟器 进程已完成 退出代码为 134 被信号 6 SIGABRT 中断 我按照 Android Studio 教程操作并能够运行模拟器 但在
  • 带有空白白屏的 WebView

    我在 DialogFragment 中有一个 webview 它使用以下方式显示文档和 PDF它可以进行几次尝试 但如果用户尝试频繁打开和关闭对话框 webview 将显示空白屏幕 我已经尝试了所有的线程link1 https stacko
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • Amazon IAP 不会调用 onPurchaseResponse

    我有一个 Android 应用程序 它使用 IAP 我正在发送PurchasingManager initiateGetUserIdRequest 并得到用户识别成功 in onGetUserIdResponse 得到回复后Purchasi
  • Android:获取最新意图

    如何获取发送到活动的最后一个意图 的文档onNewIntent 建议我需要做这样的事情 class MyActivity public void onNewIntent Intent intent setIntent intent reac
  • 尝试使用带有有效购买令牌的 Java Google Play Developer API v3 检索应用内购买信息时出现错误请求(无效值)

    当使用 Java Google Play Developer API 版本 3 并请求有效购买令牌的购买信息时 我收到以下异常 API 调用返回 400 Bad Request 响应以及以下消息 code 400 errors domain

随机推荐

  • 在一个事务中执行两个不同的查询

    我正在尝试在一个中执行两个插入查询Statement 将它们放在一笔交易中 我正在看addBatch方法 但如果我理解正确的话 它可以与单个PreparedStatement使用不同的参数多次执行相同的插入 或者用于Statement对象向
  • Chrome扩展:访问background.html中的跨域iframe

    由于页面的复杂性 XHR 并不是真正的选择 我正在尝试编写一个扩展来抓取需要作为网页加载的网站 我想出的最佳解决方案是通过放置在background html 中的iframe 进行抓取 当满足目标页面上的某些条件时 扩展程序将向用户提供通
  • 在 32 位系统上使用 int64_t 而不是 int32_t 对性能有何影响?

    我们的 C 库当前使用 time t 来存储时间值 我开始在某些地方需要亚秒级精度 因此无论如何 那里都需要更大的数据类型 此外 在某些地方解决 2038 年问题可能会很有用 因此 我正在考虑完全切换到具有底层 int64 t 值的单个 T
  • c 赋值中的类型不兼容,指针有问题吗?

    您好 我正在使用 C 我有一个关于分配指针的问题 struct foo int bar char car SOME NUMBER this is meant to be an array of char so that it can hol
  • 带有多个下划线的文本

    我的应用程序是 它是一些在线文档 用户可以在其中对文本进行注释和下划线以供参考 现在这可以由多个用户完成 因此每个下划线需要有不同的颜色 所以基本的要求是我需要有一个下面有多个下划线的文本 下划线颜色也应该不同 我知道的困难方法是 我可以添
  • 自动连接信号与 GtkBuilder 但在 GTKmm 上

    In C 我可以使用以下代码自动连接信号 gtk builder connect signals builder NULL 如何执行此操作C with GTKmm 你不能使用Glade使用时连接您的信号gtkmm 您需要手动执行此操作 Gl
  • Cheerio:.text() 将所有元素的文本附加在一起

    下面的代码输出所有 p 标签staff member title附加的 let arr li staff directory department map item index gt arr push title p staff membe
  • 在没有显式 TestSuite 的情况下,不要在 Maven 和每个 IDE(Eclipse、IntelliJ...)中默认运行一类缓慢的 JUnit 测试

    我有一组非常慢的测试 需要一周的时间才能运行 他们实际上不间断地运行一些代码大约一周 当然 没有开发人员 甚至默认构建作业 愿意运行这些测试 只有特定的 单独的构建作业才有时间运行它们 所以默认情况下需要禁用这些测试 JUnit s 类别
  • 相机允许不起作用 android webview

    我正在尝试创建一个webview应用程序 我尝试添加对清单的访问权限 但它没有改变任何内容 在 chrome 浏览器上相机可以工作 我不明白我应该做什么 1 这是清单
  • Kubernetes 入口路由到 Nextjs 应用程序的问题

    所以我有一个有趣的用例 我在 Kubernetes 集群上运行多个微服务 我的应用程序使用 NextJS 对 next 路由进行内部调用 我的问题来自这样一个事实 我需要一种方法来区分服务及其对 next 文件的请求 因此 我实现了 Nex
  • 将抛出的异常更改为失败的简洁方法?

    有没有比以下更简洁的方法来将抛出的异常提升为失败 try die always CATCH default fail 这是莫里茨代码的更简洁版本 try something orelse fail
  • python程序崩溃后如何重新启动

    我有一个 python 脚本 它启动一个程序并自动执行它 不断处理新数据并保存到预设目录 永久运行 Python 脚本 在发生错误时记录错误并在崩溃时重新启动的推荐方法是什么 到目前为止我遇到过os execv并以此开始 import sy
  • 为什么从 void 函数模板返回时不会出现编译器错误?

    考虑 void f return 5 以上会引发错误 但为什么不是这个呢 template
  • 通过 .Rmd 在标头中插入标签

    我正在使用 Rstudio 创建 Rmd 报告 并且我希望能够将元标记插入到当 Rmd 被编织成 html 时 从文档上针织选项 http yihui name knitr options package options我想我可以设置标题选
  • 如何根据 R 中另一列中的值设置列值

    我正在尝试根据另一列中的值添加新列 基本上 如果另一列缺失或为 0 则将新值设置为 0 或 1 下面这段代码有什么问题吗 times nrow eachfile for i in 1 times eachfile SalesCycleN0
  • 带有先前获取参数的 HTML 表单 GET 方法

    我在页面上有一个带有获取参数的表单 index php PageID 12 然后 我在该页面上有多个表单 当用户选择详细信息时 它们会构建页面详细信息 我的问题是 当发布表单时 Get 会覆盖其他 get 参数 我可以使用 post 但只能
  • awk科学计数法输入

    我在让 awk 从文件中读取科学记数法时遇到了一些麻烦 这里是一些示例输入 Plane Turn Real Imaginary HOR 1 0 0000e 00 2 1885e 07 HOR 1 4 8481e 08 8 1221e 08
  • SML/NJ:如何使用哈希表?

    我真的很想在 SML 中创建一个哈希表 似乎 SML NJ 中已经有一个结构 问题是 我该如何使用它 我还没有完全理解如何在SML中使用结构 并且我读过的书中的一些非常基本的示例给了我错误 我什至不知道如何纠正 所以使用HashTable结
  • WebStorm - 未解析的变量或类型 - Sails / module.export [重复]

    这个问题在这里已经有答案了 尝试修复 JavaScript 中的 WebStorm v11 0 4 警告 很多unresolved variable or typeSailsJS 应用程序中自定义类型的错误 例如以下错误 我已经在 WebS
  • HttpURLConnection 在 Android 2.x 中工作正常,但在 4.1 中不行:未发现身份验证挑战

    我有一些典型的代码 它们使用 HttpURLConnection 来获取带有 URL 的文件 它们在 android 1 x 和 2 x 中运行良好 但在Android 4 1中失败了 我在网上搜索了一下 但几乎没有找到类似的信息 有人愿意