0

応答文字列からトークンを抽出するには? (tokenの長さがわからないので、ここではNSRangeは使えません)

oauth_callback_confirmed=true&oauth_token=72157632316931441
-fadcd6ef70cbd06c&oauth_token_secret=a7e7b046a8960559

現在のコードは次のとおりです(トークンと残りの文字列を提供します):

NSRange access_token_range = [operation.responseString rangeOfString:@"oauth_token="];
        if (access_token_range.length > 0) {
            int from_index = access_token_range.location + access_token_range.length;
            NSString *access_token = [operation.responseString substringFromIndex:from_index];

            NSLog(@"access_token:  %@", access_token);
        }
4

1 に答える 1

1

応答文字列をキーと値のペアに分けてから、それらを個別に処理する方が適切です (よりエレガントです)。

NSString *token = nil;
NSArray *kvpairs = [operation.responseString componentsSeparatedByString:@"&"];
for (NSString *kvpair in kvpairs) {
    NSArray *keyAndValue = [kvpair componentsSeparatedByString:@"="];
    NSString *key = [keyAndValue objectAtIndex:0];
    if ([key isEqualToString:@"oauth_token"]) {
        token = [keyAndValue objectAtIndex:1];
        break;
    }
}

トークンtokenが含まれるかnil、見つからなかった場合。

于 2012-12-23T13:57:22.683 に答える