我只想获取 URL 请求的 header 。到目前为止,我一直在使用 stringWithContentsOfURL() 进行所有下载,但现在我只对标题感兴趣,下载整个文件是不可行的,因为它太大了。
我找到了显示在收到响应后如何读取 header 的解决方案,但是如何在请求中指定我只希望下载 header 。跳过 body !
谢谢。
最佳答案
向相关 URL 异步发送 HEAD 请求,然后访问 HTTPURLResponse
/NSHTTPURLResponse
上的 allHeaderFields
属性。
swift 4
var request = URLRequest(url: URL(string: "https://google.com/")!)
request.httpMethod = "HEAD"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let response = response as? HTTPURLResponse,
let headers = response.allHeaderFields as? [String: String] else {
return
}
}
task.resume()
目标-C
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]];
[request setHTTPMethod:@"HEAD"];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSDictionary *headers = [(NSHTTPURLResponse *)response allHeaderFields];
}];
关于iphone - 仅在 iPhone 上获取 HTTP header 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2565149/