Objective c ASIHttpRequest-如何将参数的NSDictionary转换为url编码的查询参数字符串?
使用作为NSDictionary提供的查询参数,使用ASIHttpRequest发出GET请求的首选方法是什么。 我该怎么去 来自NSDictionary*参数Objective c ASIHttpRequest-如何将参数的NSDictionary转换为url编码的查询参数字符串?,objective-c,ios,asihttprequest,ios-4.2,Objective C,Ios,Asihttprequest,Ios 4.2,使用作为NSDictionary提供的查询参数,使用ASIHttpRequest发出GET请求的首选方法是什么。 我该怎么去 来自NSDictionary*参数 至?param1=value1¶m2=value2(编码百分比) 显然,我可以手动构造URL的查询部分,但似乎有更好的方法 谢谢 我没有使用AsittpRequest,但我对URL请求也有类似的需求。以下是我正在做的: - (NSString *) createParamString { NSDictionary *p
至?param1=value1¶m2=value2(编码百分比) 显然,我可以手动构造URL的查询部分,但似乎有更好的方法
谢谢 我没有使用AsittpRequest,但我对URL请求也有类似的需求。以下是我正在做的:
- (NSString *) createParamString
{
NSDictionary *params = // build up the param dictionary
NSString *result = @"";
id key;
NSEnumerator *enumerator = [params keyEnumerator];
while (key = [enumerator nextObject]) {
result = [result stringByAppendingFormat:@"%@=%@&", key, [params objectForKey:key]];
}
result = [result substringToIndex:[result length] - 2];
return [result stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
}
不确定它是否适合所有情况,但对我来说已经足够好了您必须将查询字符串作为URL的一部分传递。从上的
ASIHTTPRequest
界面:
如果您不想使用自己的字典查询字符串方法,请查看Google Toolbox for Mac(,)中的GTMNSDictionary+URLArguments
类别。它向NSDictionary
中添加了一个方法,gtm\u httpArgumentString
,这应该是您所需要的。如果params为空,您将在以下行中遇到问题:result=[result substringToIndex:[result length]-2];尝试添加条件:如果([结果长度]>=2)
// The url for this operation, should include GET params in the query string where appropriate
NSURL *url;