🔥

SLRequestでCocoaSPDY

2022/04/18に公開

前回記事:Objective-C(iOS)でspdy[CocoaSPDY]
https://zenn.dev/articles/8ddb312b7e28c3/edit

タイトルの通り、SLRequestでのSPDY実装。
SLRequestだとTwitterアカウントの管理が楽なので、そこを使いまわしてタイムラインを取得したい時用。

実行コード

NSArray *twitterAccounts = [accountStore accountsWithAccountType:accountType];
NSURL *url = [NSURL URLWithString:@"https://twitter.com/"];
SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL: url parameters: nil];
request.account = twitterAccounts.lastObject;
    
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
configuration.protocolClasses = @[[SPDYURLSessionProtocol class]];
NSURLSession* session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
    
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:[request preparedURLRequest]];
[dataTask resume];
  • preparedURLRequestでNSURLRequestに変換し、それをdataTaskWithRequestでNSURLSessionに渡している。

疎通確認

- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler{
    NSLog(@"didReceiveResponse");
    NSLog(@"%@",response);
}

投稿用に多少修正しているのでコピペでは動かないかも。

Discussion