NSURLSession dataTaskWithRequest 只在第一次工作

NSURLSession dataTaskWithRequest only works first time

我目前正在像往常一样开发 WS 调用,但我不知道为什么这只在我第一次调用它时有效,数据第一次有价值,但如果我再次调用它 returns 无。如果我查看响应,我可以看到当数据为零时 returns 我的值为 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()

有人知道吗?

通过更改缓存策略解决

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