Swift URLSession.shared.dataTask GET 请求 -1001 返回超时

内尼尔

将 POST 请求发送到我们的 NGINX 服务器可以很好地使用URLRequestURLSession.shared.dataTask我可以登录我的应用程序,但是当我尝试 GET 请求时,我的服务器没有记录该请求到达他的日志。最后我得到超时错误。重要的是,我使用的是 https。我还尝试将 http 用于 GET 请求。在我的 NGINX 服务器上,我仅将 TLS 设置为 1.2(我不是系统专家,我是在 nginx cfg 文件中设置的。

错误域 = NSURLErrorDomain 代码 = -1001 “请求超时。” 用户信息= {NSUnderlyingError = {0x60400005abe0错误域= kCFErrorDomainCFNetwork代码= -1001 “(空)”用户信息= {_ kCFStreamErrorCodeKey = -2102,_kCFStreamErrorDomainKey = 4}},NSErrorFailingURLStringKey = https://开头myurl,NSErrorFailingURLKey = HTTPS:/ / myurl , _kCFStreamErrorDomainKey = 4, _kCFStreamErrorCodeKey = -2102, NSLocalizedDescription = 请求超时。}

我相信,我的代码URLRequestURLSession是正确的,因为对本地主机和我们的开发环境,我没有任何的这些问题。

那是我创建我的代码 URLRequest

private func buildUrlRequest(jsonObject:[String: Any], connectionType:ConnectionTypes, url:String) -> NSMutableURLRequest? {
    let jsonDataSerialized:Data
    do {
        jsonDataSerialized = try JSONSerialization.data(withJSONObject: jsonObject)
    } catch {
        return nil
    }
    var request:NSMutableURLRequest
    if nextData {
        request = URLRequest(url: URL(string: self.nextRequestPage)!) as! NSMutableURLRequest
    } else {
        let tString = self.mBaseUrl + url
        if let encoded = tString.addingPercentEncoding(withAllowedCharacters: .urlFragmentAllowed),
            var finalurl = URL(string: encoded)
        {
            if connectionType == .GET {
                var tString:String
                tString=finalurl.absoluteString
                tString = tString.replacingOccurrences(of: "https", with: "http")
                finalurl = URL(string:tString)!
            }
            request = URLRequest(url: finalurl) as! NSMutableURLRequest
        } else {
            return nil
        }
    }
    request.httpMethod = connectionType.rawValue // i am using enum here
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    request.setValue("no-cache)", forHTTPHeaderField: "Cache-Control")
    request.httpBody = jsonDataSerialized
    if mUser != nil && mUser.getSessionId() != nil {
        request.addValue("Token " + mUser.getSessionId()!, forHTTPHeaderField: "Authorization")
    }
    request.cachePolicy = .reloadIgnoringLocalAndRemoteCacheData
    request.timeoutInterval = 30.0
    return request
}

这就是我创建任务的方式......在我使用的方法体之后 task.resume()

let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in .... (and so on)

我花了几个小时来解决这个问题......但我不知道。我不确定问题是服务器配置还是 Swift 代码......

内尼尔

主要问题是jsonObject:[String: Any]我把它改成jsonObject:[String: Any]?

在我的代码中,我为每个请求创建了主体,无论它是 POST GET PUT 还是什么。如果没有 GET 请求中的 http-body,我就没有问题了,没有超时!我按预期正确接收数据。

我还发现,仅在我的情况下,没有必要设置 nginx 或让 sll_protocols 加密为 TLS 1.2。

我希望如果其他人遇到这个问题,他们会找到这篇文章:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JSON网络请求未输入URLSession.shared.dataTask

来自分类Dev

如何获取请求中标头的值 (URLSession.shared.dataTask(with: request) { (data, response, error)

来自分类Dev

在URLSession.shared.dataTask之后调用performSegue

来自分类Dev

URLSession.dataTask 返回 0 的数据

来自分类常见问题

URLSession.shared.dataTask与dataTaskPublisher,什么时候使用?

来自分类Dev

URLSession.shared.dataTask与dataTaskPublisher,什么时候使用?

来自分类Dev

何时对URLSession.shared.dataTask使用弱自身

来自分类Dev

appleTV: URLSession.shared.dataTask 下载为空

来自分类Dev

NSURLErrorDomain代码= -1001请求超时

来自分类Dev

如果在页面完成之前退出页面,如何取消URLSession.shared.dataTask?

来自分类Dev

在 URLSession.shared.dataTask 期间存储来自异步闭包的数据

来自分类Dev

错误:错误域= NSURLErrorDomain代码= -1001“请求超时。”

来自分类Dev

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

来自分类Dev

Firebase 云函数响应代码=-1001“请求超时。” 每时每刻

来自分类Dev

来自 HTTPS URLSession.dataTask 的 0 字节数据

来自分类Dev

在Swift中,当使用dataTaskWithRequest时,当请求超时时,completionHandler将返回nil NSURLResponse

来自分类Dev

处理URLSession超时

来自分类Dev

处理URLSession超时

来自分类Dev

AngularJS $超时返回错误的请求

来自分类Dev

Swift 3开发者快照中的POST请求给出了“对成员'dataTask(with:completionHandler :)的模糊引用”

来自分类Dev

Swift 3开发者快照中的POST请求给出了“对成员'dataTask(with:completionHandler :)的模糊引用”

来自分类Dev

在命令行应用程序中使用Swift在URLSession中进行POST请求

来自分类Dev

Swift - urlsession cookie

来自分类Dev

请求时间过长时,取消NSURLSession dataTask

来自分类Dev

带参数的Swift GET请求

来自分类Dev

请求超时后,Swift Alamofire退出

来自分类Dev

我得到“Error Domain=NSURLErrorDomain Code=-1001“请求超时”。在iOS设备上但在android上工作正常

来自分类Dev

nslookup为什么返回“ DNS请求超时”

来自分类Dev

URLSession转换为Swift 3

Related 相关文章

  1. 1

    JSON网络请求未输入URLSession.shared.dataTask

  2. 2

    如何获取请求中标头的值 (URLSession.shared.dataTask(with: request) { (data, response, error)

  3. 3

    在URLSession.shared.dataTask之后调用performSegue

  4. 4

    URLSession.dataTask 返回 0 的数据

  5. 5

    URLSession.shared.dataTask与dataTaskPublisher,什么时候使用?

  6. 6

    URLSession.shared.dataTask与dataTaskPublisher,什么时候使用?

  7. 7

    何时对URLSession.shared.dataTask使用弱自身

  8. 8

    appleTV: URLSession.shared.dataTask 下载为空

  9. 9

    NSURLErrorDomain代码= -1001请求超时

  10. 10

    如果在页面完成之前退出页面,如何取消URLSession.shared.dataTask?

  11. 11

    在 URLSession.shared.dataTask 期间存储来自异步闭包的数据

  12. 12

    错误:错误域= NSURLErrorDomain代码= -1001“请求超时。”

  13. 13

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

  14. 14

    Firebase 云函数响应代码=-1001“请求超时。” 每时每刻

  15. 15

    来自 HTTPS URLSession.dataTask 的 0 字节数据

  16. 16

    在Swift中,当使用dataTaskWithRequest时,当请求超时时,completionHandler将返回nil NSURLResponse

  17. 17

    处理URLSession超时

  18. 18

    处理URLSession超时

  19. 19

    AngularJS $超时返回错误的请求

  20. 20

    Swift 3开发者快照中的POST请求给出了“对成员'dataTask(with:completionHandler :)的模糊引用”

  21. 21

    Swift 3开发者快照中的POST请求给出了“对成员'dataTask(with:completionHandler :)的模糊引用”

  22. 22

    在命令行应用程序中使用Swift在URLSession中进行POST请求

  23. 23

    Swift - urlsession cookie

  24. 24

    请求时间过长时,取消NSURLSession dataTask

  25. 25

    带参数的Swift GET请求

  26. 26

    请求超时后,Swift Alamofire退出

  27. 27

    我得到“Error Domain=NSURLErrorDomain Code=-1001“请求超时”。在iOS设备上但在android上工作正常

  28. 28

    nslookup为什么返回“ DNS请求超时”

  29. 29

    URLSession转换为Swift 3

热门标签

归档