使用作为NSDictionary提供的查询参数,使用ASIHttpRequest发出GET请求的首选方法是什么。
如何得到
来自NSDictionary * params
to?param1 = value1& param2 = value2(百分比编码)
显然我可以手动构建URL的查询部分,但似乎可能有更好的方法。
谢谢!
答案 0 :(得分:4)
您必须将查询字符串作为URL的一部分传递。来自GitHub上的ASIHTTPRequest
界面:
// The url for this operation, should include GET params in the query string where appropriate
NSURL *url;
如果您不想推广自己的词典到查询字符串方法,请查看Google Toolbox for Mac中的GTMNSDictionary+URLArguments
类别(.h,{{3 }})。它向gtm_httpArgumentString
添加了一个方法NSDictionary
,该方法应该是您所追求的。
答案 1 :(得分:3)
我没有使用ASIHTTPRequest,但我对我所做的URLRequest也有类似的需求。这就是我在做的事情:
- (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]
}
不确定它是否适用于所有情况,但它对我来说运作良好