使用Swift中更新的标题传输重新发送您的请求

时间:2016-03-08 09:47:30

标签: ios swift http-post json-rpc transmission-daemon

我已经将此代码用于X-Transmission-Session-Id,但现在我需要使用更新的标头重新发送请求。

function takeXTransmissionSessionId( ){

    let urls = NSURL(string: "\(url)")
    let task = NSURLSession.sharedSession().dataTaskWithURL(urls!) { (data, respornse, error) -> Void in

        guard error == nil && data != nil else {

            print("error=\(error!)")

            let alertView = UIAlertController(title: "ERROR", message: "A server with the specified hostname could not be found.", preferredStyle: UIAlertControllerStyle.Alert)
            let actionView = UIAlertAction(title: "OK", style: UIAlertActionStyle.Cancel, handler: nil)
            alertView.addAction(actionView)
            self.presentViewController(alertView, animated: true, completion: nil)

            return
        }

        if let httpStatus = respornse as? NSHTTPURLResponse where httpStatus.statusCode != 200 {

            let sesionID = httpStatus.allHeaderFields["X-Transmission-Session-Id"]

            if sesionID == nil {

                let alertView = UIAlertController(title: "ERROR", message: "The request has not been applied because it lacks valid authentication credentials for the target resource.", preferredStyle: UIAlertControllerStyle.Alert)
                let actionView = UIAlertAction(title: "OK", style: UIAlertActionStyle.Cancel, handler: nil)
                alertView.addAction(actionView)
                self.presentViewController(alertView, animated: true, completion: nil)

            }else{

                //print("\(respornse!)")
                //print("\(sesionID!)")
                self.XTransmissionSessionId = "\(sesionID!)"

            }

        }

    }

    task.resume()

}

我的问题是我以不同的方式多次托盘,但我不知道我需要做什么。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是我需要做的代码:

request.HTTPMethod = "POST"
    request.addValue("\(XTransmissionSessionId)", forHTTPHeaderField: "X-Transmission-Session-Id")