我有一个快速的应用程序。它将http请求发送到我无法访问的服务器。
当应用程序在后台停留一段时间后,我返回并尝试向服务器发送请求时出现http错误“连接丢失”。
我读了这个post
我想添加连接:关闭标题和值,如建议的那样。
我试过这段代码:
func taskForGETMethod(method: String, pathParameters: [String], parameters: [String : AnyObject], completionHandler: (result: AnyObject!, error: NSError?) -> Void) -> NSURLSessionDataTask {
/* 1. Build the URL and configure the request */
let urlString = Constants.BaseURLSecure + method + HttpClient.escapedPath(pathParameters) + HttpClient.escapedParameters(parameters)
let url = NSURL(string: urlString)!
let request = NSURLRequest(URL: url)
request.setValue("Connection", forKey: "close")
但是我的所有请求现在都失败了。如何正确添加标题?
答案 0 :(得分:0)
如果您想操纵http标头值,则需要使用NSMutableURLRequest
和以下API
func setValue(_ value: String?, forHTTPHeaderField field: String)
喜欢这样
let url = NSURL(string: "http://yo", relativeToURL: nil)
let req = NSMutableURLRequest(URL: url!)
req.setValue("close", forHTTPHeaderField: "Connection")
Swift 3
let url = URL(string: "http://yo", relativeTo: nil)
let req = NSMutableURLRequest(url: url! )
req.setValue("close", forHTTPHeaderField: "Connection")
答案 1 :(得分:0)
问题出在
request.setValue("Connection", forKey: "close")
键是标题的标题,应为“ Connection”,其值应为“ close”。简而言之,目前您设置的是 close =连接 ,而不是 Connection = close 。>
您需要将行更改为
request.setValue("close", forKey: "Connection")