异步向有问题的URL发送HEAD请求,然后只需访问/ allHeaderFields上的属性.HTTPURLResponseNSHTTPURLResponse
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()
Run Code Online (Sandbox Code Playgroud)
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];
}];
Run Code Online (Sandbox Code Playgroud)
我用过的。下面的代码是同步的,但您可以使用委托使其异步。
NSMutableURLRequest *newRequest = ... //init your request...
NSURLResponse *response=nil;
NSError *error=nil;
[newRequest setValue:@"HEAD" forKey:@"HTTPMethod"];
[NSURLConnection sendSynchronousRequest:newRequest returningResponse:&response error:&error];
[newRequest release];
//Get MIME type from the response
NSString* MIMEType = [response MIMEType];
Run Code Online (Sandbox Code Playgroud)
编辑添加用 NSMutableRequest 替换 NSURLRequest。