1

I'm currently developing a WS Call like always, but I don't know why this only works the first time that I call to it, data first time has value, but if I call it again It returns nil. If I look to the response, I can see that it returns me an 412 value when data is nil.

// 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()

Any one knows?

Mikel Sanchez
  • 2,870
  • 1
  • 20
  • 28

1 Answers1

1

Solved by Changing the cachePolicy

let request = NSMutableURLRequest(URL: NSURL(string: endPoint)!,
                                          cachePolicy: .ReloadIgnoringLocalAndRemoteCacheData,
                                          timeoutInterval: Constants.REQUEST.TIMEOUT)
Mikel Sanchez
  • 2,870
  • 1
  • 20
  • 28