当我在Cocoa中运行NSURLRequest时,我收到一个303 HTTP错误,这是一个重定向。如何提取正确的URL以重定向到?它是在错误变量中,还是在其他地方?
答案 0 :(得分:2)
您可能想要查看使用NSURLConnection自动处理重定向:
Handling Redirects and other Request Changes
如果您想手动处理,重定向网址位于响应的“位置”标题中。以下是您可以使用connection:didReceiveResponse
委托方法获取它的方法。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
// ... if the response status is 303 ...
if ([response respondsToSelector:@selector(allHeaderFields)]) {
NSString* location = [[httpResponse allHeaderFields] valueForKey:@"Location"];
// do whatever with the redirect url
}
}