我正在解析服务器响应标头中所需的链接。我的标题看起来像
Access-Control-Allow-Origin → * Age → 0 Cache-Control → private,must-revalidate
连接→保持活动
内容编码 → gzip 内容类型 → 应用程序/json
日期 → 2015 年 6 月 13 日星期六 15:58:56 GMT ETag → W/"cb38bb07f1635fd6aba5969985bf0607"
链接 → http://thisIsCurrentlink&limit=24 ; rel="next", http://thisIsLastlink&limit=24 ; rel="last", http://thisIsFirstlink&limit=24;相对=“第一”,<>;相对=“上一个”
服务器 → nginx
变化 → 接受编码
X-总计数 → 131
传输编码→分块
通过这样做,我可以获得links
包含所有链接的数组
NSString *linkHeader = [(NSHTTPURLResponse *)operation.response allHeaderFields][@"Link"];
NSArray *links = [linkHeader componentsSeparatedByString:@","];
然后我正在执行以下操作以获取我需要的所有链接
RACSequence *sequence = [links.rac_sequence map:^id(NSString* item) {
NSError *error;
NSLog(@"item is %@",item);
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<(.*)>" options:0 error:&error];
NSString *actualLink;
if (regex != nil) {
NSTextCheckingResult *result = [regex firstMatchInString:item
options:0
range:NSMakeRange(0, item.length)
];
if (result) {
NSRange range = [result rangeAtIndex:1];
actualLink = [item substringWithRange:range];
NSLog(@"actualLink is %@",actualLink);
return [RACSequence return:actualLink];
}
}
return [RACSequence empty];
}];
现在sequence
包含所有链接
http://thisIsCurrentlink&limit=24
http://thisIsLastlink&limit=24
http://thisIsFirsttlink&limit=24
我的问题是如何从上面访问每个项目sequence