iOS:如果修改,则发送自请求的标头

iOS:如果修改,则发送自请求的标头,ios,objective-c,rss,http-headers,if-modified-since,Ios,Objective C,Rss,Http Headers,If Modified Since,有人知道如何发送带有url请求的If-Modified-Since头吗 我正在尝试获取一个状态码,它将告诉我RSS页面是否已更新 更新#1: 我可以做以下测试: NSURL *url = [NSURL URLWithString:self.url]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request addValue:@"Tue, 18 Nov 2014 20:46:46 GMT"

有人知道如何发送带有url请求的If-Modified-Since头吗

我正在尝试获取一个状态码,它将告诉我RSS页面是否已更新

更新#1: 我可以做以下测试:

NSURL *url = [NSURL URLWithString:self.url];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request addValue:@"Tue, 18 Nov 2014 20:46:46 GMT" forHTTPHeaderField:@"If-Modified-Since"];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;

    int responseCode = (int)[httpResponse statusCode];
    NSLog(@"All headers: %@", [httpResponse allHeaderFields]);
    NSLog(@"Status code:: %d", responseCode);
}];
但奇怪的是,如果我删除整个iOS应用程序并运行它,就会得到304状态码。但是,如果我注释掉添加if Modified Since值的那一行并重新运行它——然后我得到200,但是当我取消注释那一行并重新运行它时——那么304错误不会回来。。。这是一个200错误代码。恢复304错误的唯一方法是从我的iPhone设备上删除整个应用程序


知道发生了什么吗?

有点晚了,但由于NSURLConnection正在缓存响应以获取304代码,您应该像这样创建请求

NSURLRequest *request = [NSURLRequest requestWithURL:url
                                         cachePolicy:NSURLRequestReloadIgnoringCacheData
                                     timeoutInterval:60.0];

304不是一个错误!这意味着资源与上次请求相同。
将此值设置为从上一个对同一端点的请求接收到的上一个修改值。如果自上次请求后资源尚未更新,服务器将发送304(未修改)状态代码响应。

检查与此处相同的答案与帖子相同