NSURLSession dataTaskWithRequest仅在第一次使用

麦克尔·桑切斯(Mikel Sanchez)

我目前正在像往常一样开发WS Call,但是我不知道为什么这仅在我第一次调用它时有效,因此第一次数据具有价值,但是如果我再次调用它会返回nil。如果我看一下响应,我可以看到当数据为零时,它返回了一个412值。

// Request
    var endPoint = Constants.CONFIG.WS_LANZADERA

    if Utils.getEnviroment() == Constants.Environment.Develop.rawValue {
        endPoint = endPoint + Constants.WS.SHIP
    }

    let request = NSMutableURLRequest(URL: NSURL(string: endPoint)!,
                                      cachePolicy: .UseProtocolCachePolicy,
                                      timeoutInterval: Constants.REQUEST.TIMEOUT)

    request.HTTPMethod = Constants.HTTP.METHOD.POST
    request.HTTPBody = shipParams.getDictionary().dataFromHttpParameters()

    let session = NSURLSession.sharedSession()

    // Handler

    let dataTask = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in

        if error == nil {
            let jsonResult = JSON(data: data!)
            if jsonResult["error"] != "" {
                //.arrayObject
                let proxaXMLData = jsonResult["ProsaXMLData"]
                let SPM = proxaXMLData[3]
                //let userList :Array<User> = Mapper<User>().mapArray(dict)!
                //let user = userList[0]
                self.webServiceDelegates.forEach({ (delegate) -> () in
                    if (delegate.respondsToSelector(#selector(WebServiceDelegate.responseShipListSuccess))) {
                        delegate.responseShipListSuccess?()
                    }
                })
            } else {
                self.webServiceDelegates.forEach({ (delegate) -> () in
                    if (delegate.respondsToSelector(#selector(WebServiceDelegate.responseShipListFailed(_:message:)))) {
                        delegate.responseShipListFailed!(jsonResult["error"]["code"].string!, message: jsonResult["error"]["message"].string!)
                    }
                })
            }

        }
        else {
            self.webServiceDelegates.forEach({ (delegate) -> () in
                if (delegate.respondsToSelector(#selector(WebServiceDelegate.responseShipListFailed(_:message:)))) {
                    delegate.responseShipListFailed!(error!.code.description, message: error!.localizedDescription)
                }
            })
        }
    })

    dataTask.resume()

有谁知道?

麦克尔·桑切斯(Mikel Sanchez)

通过更改cachePolicy解决

let request = NSMutableURLRequest(URL: NSURL(string: endPoint)!,
                                          cachePolicy: .ReloadIgnoringLocalAndRemoteCacheData,
                                          timeoutInterval: Constants.REQUEST.TIMEOUT)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

使用NSURLSession发送POST请求

来自分类Dev

使用NSURLSession处理HTTP错误?

来自分类Dev

使用NSURLSession的HTTP PUT方法

来自分类Dev

作用域变量仅在第一次更新

来自分类Dev

使用NSURLSession下载大量图像

来自分类Dev

动画仅在WPF中第一次出现

来自分类Dev

NSURLSession使用get发送参数

来自分类Dev

$()。html()仅在第一次使用

来自分类Dev

NSURLCache无法与NSURLSession一起使用

来自分类Dev

使用NSURLSession的iOS FTP上传

来自分类Dev

使用NSURLSession获取JSON数据

来自分类Dev

RxSwift:代码仅在第一次工作

来自分类Dev

使用NSURLSession固定公钥

来自分类Dev

Android WebView仅在第一次失败

来自分类Dev

使用NSURLSession的HTTP PUT方法

来自分类Dev

使用NSURLSession设置cookie

来自分类Dev

使用NSURLSession时,UI被阻止

来自分类Dev

第一次使用Mockito

来自分类Dev

NSURLSession dataTaskWithRequest迅捷

来自分类Dev

使用NSURLSessionDelegate的Swift NSURLSession

来自分类Dev

NSURLSession dataTaskWithRequest没有被调用

来自分类Dev

jQuery .on()仅在第一次使用

来自分类Dev

NSURLCache无法与NSURLSession一起使用

来自分类Dev

NSURLSession的dataTaskWithRequest:返回nil

来自分类Dev

函数在NSURLSession之前完成-dataTaskWithRequest完成

来自分类Dev

使用NSURLSession发出同步请求

来自分类Dev

NSURLSession在第一次调用中不返回数据

来自分类Dev

使用NSURLSession委托进行授权

来自分类Dev

Laravel - 第一次使用