如何处理NSURLRequest HTTP错误303?

时间:2010-07-14 00:14:06

标签: iphone cocoa http nsurlrequest

当我在Cocoa中运行NSURLRequest时,我收到一个303 HTTP错误,这是一个重定向。如何提取正确的URL以重定向到?它是在错误变量中,还是在其他地方?

1 个答案:

答案 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 
    }
}