ASIHttpRequest – 如何将params的NSDictionary转换为url编码的查询参数string?

使用作为NSDictionary提供的查询参数使用ASIHttpRequest进行GET请求的首选方法是什么? 我如何从NSDictionary * params获得
to?param1 = value1&param2 = value2(百分比编码)

显然我可以手动构buildURL的查询部分,但似乎可能有更好的方法。

谢谢!

您必须将查询string作为URL的一部分传递。 从GitHub上的ASIHTTPRequest接口:

 // The url for this operation, should include GET params in the query string where appropriate NSURL *url; 

如果您不想滚动自己的字典到查询string方法,请查看Google Toolbox for Mac( .h , .m )中的GTMNSDictionary+URLArguments类别。 它添加一个方法, gtm_httpArgumentStringNSDictionary应该是你在之后。

我没有使用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] } 

不知道它是否适合所有的情况,但对我来说,它已经足够好了