我正在使用Twitter REST/Streaming API。当我想访问 REST API 时,我创建了一个NSMutableURLRequest
(包含访问令牌和查询等参数)。然后我结合使用请求NSURLSession
来加载数据。我正在使用一个为我创建可变请求对象的库(如果我不使用请求对象,那么 Twitter API 将不允许我访问相关的用户数据)。
现在我正在尝试通过流 API 加载 Twitter 时间线。我遇到的一个问题是我无法弄清楚如何将我的自定义可变请求对象与NSStream
对象一起使用。我唯一能做的就是设置host
URL 链接。但这还不够好,因为我需要传递用户 OAuth 数据(包含在可变请求对象中),以便 Twitter API 允许我访问用户数据。
如何将请求对象附加到流?这是我的代码:
NSURL *website = [NSURL URLWithString:@"https://userstream.twitter.com/1.1/user.json"];
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)[website host], 80, &readStream, &writeStream);
NSInputStream *inputStream = (__bridge_transfer NSInputStream *)readStream;
NSOutputStream *outputStream = (__bridge_transfer NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];