为什么接收到一个302响应时,我得到两个redirectResponses?
-
24-09-2019 - |
题
我使用以下代码:
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSHTTPURLResponse *)response {
NSLog(@"Received redirect Response: %@ %@", [response allHeaderFields], [NSHTTPURLResponse localizedStringForStatusCode:[response statusCode]]);
return request;
}
当我接收302与下面的头数据:
< HTTP/1.1 302 Found
< Date: Wed, 03 Mar 2010 07:47:17 GMT
< Server: lighttpd/1.4.19
< Content-length: 0
< Content-type: text/html;charset=utf-8
< Location: `<new Location>`
< Vary: Accept-Encoding
这是在gdb控制台输出:
2010-03-03 08:42:03.265 MYPROG [68106:207]所获重定向响应: (空)服务器错误2010-03-03 08:42:14.414 MYPROG [68106:207] 收到重定向响应:{点击 连接=“保持活跃”;点击 “内容编码” = gzip的;结果, “内容长度” = 20;结果, “内容类型”= “text / html的;字符集= UTF-8”;结果, 日期=“星期三,2010年03月03七点42分10秒格林尼治标准时间”;点击 “保持活动”= “超时= 15,最大= 100”;结果, 位置= “
<new Location>
”;点击 服务器= “的lighttpd / 1.4.19”;点击 变化=“接受编码”; }结果
在使用curl我只得到一个响应并tracedump告诉一样的,所以我相信,服务器只将一个重定向。结果 为什么被调用两次此选择?
解决方案
connection:willSendRequest:redirectResponse:
被每一个请求之前调用,因此它被称为一次在原始请求,这不是一个重定向响应所以是零;然后加载重定向目标,其中响应是302响应于初始请求时,它被调用。
不隶属于 StackOverflow