【问题标题】:Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" Firebase Storage iOS错误域=NSURLErrorDomain 代码=-1017“无法解析响应”Firebase 存储 iOS
【发布时间】:2022-07-01 17:45:32
【问题描述】:

我正在将文件上传到 FirebaseStorage,但在 iOS 上出现此错误:

Task <24E18897-20B7-45FD-9621-85FF09DC6326>.<1> finished with error [-1017] Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo={_kCFStreamErrorCodeKey=-1, _NSURLErrorFailingURLSessionTaskErrorKey=BackgroundUploadTask <24E18897-20B7-45FD-9621-85FF09DC6326>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "BackgroundUploadTask <24E18897-20B7-45FD-9621-85FF09DC6326>.<1>",
    "LocalUploadTask <24E18897-20B7-45FD-9621-85FF09DC6326>.<1>"
), NSLocalizedDescription=cannot parse response, _kCFStreamErrorDomainKey=4, NSErrorFailingURLStringKey=https://firebasestorage.googleapis.com/v0/b/mybucket/o/user%2FNyq7dMqe1kcAZ77R1YwH5fsAkV83%2Fcontent%2F43aa2d41-7a19-11ec-bd39-85fcd9d025?uploadType=resumable&name=user%2FNqe1kcAZ77R1YwH5fsAkV83%2Fcontent%2F43aa2d41-7a19-11ec-bd39-8508fcd025&upload_id=ADPycdv0-OYZPx3zAGzLrn25ZdI9srgkgABHGKb_1fCqUO7AAPHsZTkz_iVX1NfuYQsn0LHgCCiOsSzhLiP4Ho7VynSf_ceJJw&upload_protocol=resumable, NSErrorFailingURLKey=https://firebasestorage.googleapis.com/v0/b/mybucket/o/user%2FNyqMqe1kcAZ77R1YwH5fsAkV83%2Fcontent%2F43aa2d41-7a19-11ec-bd39-8508fcd9d025?uploadType=resumable&name=user%2FNyq7dMqe1kcAZ77R1YwH5V83%2Fcontent%2F432d41-7a19-11ec-bd39-8508f9d025&upload_id=ADPycdv0-OYZPx3zAGzLrn25ZdI9srgkgABHGKb_1fCqUO7AAPHsZTkz_iVX1NfuYQsn0LHgCCiOsSzhLiP4Ho7VynSf_ceJJw&upload_protocol=resumable}
GTMSessionFetcher invoking fetch callbacks, data (null), error Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo={_kCFStreamErrorCodeKey=-1, _NSURLErrorFailingURLSessionTaskErrorKey=BackgroundUploadTask <24E18897-20B7-45FD-9621-85FF09DC6326>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "BackgroundUploadTask <24E18897-20B7-45FD-9621-85FF09DC6326>.<1>",
    "LocalUploadTask <24E18897-20B7-45FD-9621-85FF09DC6326>.<1>"
), NSLocalizedDescription=cannot parse response, _kCFStreamErrorDomainKey=4, NSErrorFailingURLStringKey=https://firebasestorage.googleapis.com/v0/b/mybucket/o/users%2FNyq7dMqe1kcAZ77R1YwH5fsAkV83%2Fcontent%2F43aa2d41-7a19-11ec-bd39-8508fcd9d025?uploadType=resumable&name=users%2FNyq7dMqe1kcAZ77R1YwH5fsAkV83%2Fposts%2F43aa2d41-7a19-11ec-bd39-8508fcd9d025s&upload_id=ADPycdv0-OYZPx3zAGzLrn25ZdI9srgkgABHGKb_1fCqUO7AAPHsZTkz_iVX1NfuYQsn0LHgCCiOsSzhLiP4Ho7VynSf_ceJJw&upload_protocol=resumable, NSErrorFailingURLKey=https://firebasestorage.googleapis.com/v0/b/mybucket/o/user%2FNyq7dMqe1kcAZ77R1YwH5fsAkV83%2Fcontent%2F43aa2d41-7a19-11ec-bd39-8508fcd9d025-low_res?uploadType=resumable&name=user%2FNyq7dMqe1kcAZ77R1YwH5fsAkV83%2Fposts%2F43aa2d41-7a19-11ec-bd39-8508f&upload_id=ADPycdv0-OYZPx3zAGzLrn25ZdI9srgkgABHGKb_1fCqUO7AAPHsZTkz_iVX1NfuYQsn0LHgCCiOsSzhLiP4Ho7VynSf_ceJJw&upload_protocol=resumable}

这导致[firebase_storage/unknown] An unknown error occurred, please check the server response.
但这一次我可以看到 iOS 故障,不幸的是没有服务器响应...

那么Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" 是什么意思以及如何解决它?

注意:我已经看到了这个question,但这并不是我可以自行修复的问题,因为我正在使用 Firebase iOS SDK...

编辑:

我已经在 Firebase 支持中打开了一个 issue 和一个案例,以获取有关此的更多信息,因为不幸的是,目前似乎没有人知道这些信息。
这可能是服务器端的错误,因为我无法 100% 地重现它,而且该错误对调试也没有用。

编辑 2:

Firebase 支持能够在互联网连接非常低的情况下重现此问题,但在我的情况下,这也发生在正常连接情况下。
我还设置了 metadata 指定 content-type 以避免额外的“解析”服务器端,但不幸的是它没有改变任何东西。

【问题讨论】:

  • 似乎请求和响应有问题 - 例如json格式,当它期待别的东西时。
  • 这也是我的猜测,但我只是使用uploadFile 方法,所以我没有与 json 输入相关的自定义/容易出错的代码,因为它可能是由 Firebase SDK 本身完成的:/
  • @Tom3652 你有解决办法吗?
  • 我仍在与 Firebase 支持保持联系,他们坚持在文件上传时设置元数据,但我仍然遇到问题。随意评论我提到的问题或向 Firebase 支持提出案例,这可能有助于表明这是一个真正的问题:/

标签: swift objective-c firebase firebase-storage


【解决方案1】:

我也有同样的问题。
但我知道为什么会出现这个问题。
也许,这个问题是由弱网络级别发生的。
如果您想重现此问题,请使用“Xcode 的其他工具”的“硬件”中的“Network Link Conditioner.prefPane”
Additional tools for Xcode Download link

我可以重现以下设置。

Downlink Bandwidth: 10 Kbps
Downlink Packets Dropped: 5 %
Downlink Delay: 440 ms

Uplink Bandwidth: 10 Kbps
Uplink Packets Dropped: 5 %
Uplink Delay: 440 ms

DNS Delay: NO SET VALUE

它的设置可以通过管理配置文件添加。
祝你好运,我承认我的英语。

【讨论】:

    猜你喜欢
    • 2015-07-01
    • 2015-02-12
    • 1970-01-01
    • 2016-05-10
    • 2020-06-01
    • 2017-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多