首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URLSession dataTask返回时没有错误也没有数据,导致SwiftyStoreKit.ReceiptError错误1。

URLSession dataTask返回时没有错误也没有数据,导致SwiftyStoreKit.ReceiptError错误1。
EN

Stack Overflow用户
提问于 2019-08-02 16:57:05
回答 1查看 1.2K关注 0票数 2

为什么下面的代码会导致URLSessiondataerror返回nil

代码语言:javascript
复制
let task = URLSession.shared.dataTask(with: storeRequest as URLRequest) { data, _, error -> Void in

    // there is an error
    if let networkError = error {
        print("There was a network error")
        return
    }

    // there is no data
    guard let safeData = data else {
        print("No network error, but no data either")
        return
    }
...

在运行此代码时,有一个用户会击中No network error, but no data either行。

根据苹果在URLSession.dataTask上的文档

如果请求成功完成,则完成处理程序块的数据参数包含资源数据,错误参数为零。如果请求失败,则数据参数为零,错误参数包含有关故障的信息。

我读到:无论是data还是error都应该是非零的。但这似乎并没有发生在这里。在什么情况下都是零?

(如果有帮助的话-问题中的网址是https://buy.itunes.apple.com/verifyReceipthttps://buy.itunes.apple.com/verifyReceipt收据验证API,受影响的用户是苹果的评论员,他们一般不愿意协助调试。这段代码实际上是SwiftyStoreKit的一部分,它会为审阅者造成错误SwiftyStoreKit.ReceiptError error 1,但不会对其他任何人造成错误)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-02 19:14:13

这可能取决于您在dataTask的完成处理程序中忽略的dataTask (文档 for URLSession.dataTask表示响应虽然是URLResponse类型,实际上是HTTPURLResponse类型)所忽略的statusCode属性,因此它将具有一个statusCode属性,它将有助于理解请求的结果。

请求很可能是成功的,但是没有返回数据(即204无内容响应或300重定向响应)。它们将没有数据响应,但也不会有错误响应,因为请求没有失败。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57330730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档