我有一个网址:
DBSession url : db-qf8erkjgfnhno://1/connect?oauth_token_secret=7ek3fhnfnhla&state=58444830-7764-4DBE-A4F1-84B8604sv2C5&oauth_token=c93dvvaa5b47&uid=2841089
我想取oauth_token_secret
和oauth_token
的值。我尝试使用[url query]
方法获取oauth_token_secret=7ek3fhnfnhla&state=58444830-7764-4DBE-A4F1-84B8604sv2C5&oauth_token=c93dvvaa5b47&uid=2841089
,但我找不到获取oauth_token_secret
和oauth_token
值的方法。
请帮帮我。
答案 0 :(得分:2)
您可以将查询参数解析为NSMutableDictionary,然后从那里检索值。
NSString *query = [url query];
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
for (NSString *param in [query componentsSeparatedByString:@"&"]) {
NSArray *elts = [param componentsSeparatedByString:@"="];
if([elts count] < 2) continue;
[params setObject:[elts objectAtIndex:1] forKey:[elts objectAtIndex:0]];
}
NSLog(@"oauth_token_secret : %@", params[@"oauth_token_secret"]);
NSLog(@"oauth_token : %@", params[@"oauth_token"]);
答案 1 :(得分:0)
这是一个在两个字符之间返回字符串的函数。这是回复你的誓言令牌。根据您的需要进行更改。
-(NSString*)contentsInStrings:(NSString *)str
{
NSString *subString = nil;
NSRange range1 = [str rangeOfString:@"&oauth_token="];
NSRange range2 = [str rangeOfString:@"&"];
if ((range1.length == 1) && (range2.length == 1) && (range2.location > range1.location))
{
NSRange range3;
range3.location = range1.location+1;
range3.length = (range2.location - range1.location)-1;
subString = [str substringWithRange:range3];
}
return subString;
}