AFHTTPRequestOperationManager urlstring 编码和无效参数不满足:URLString

Posted

技术标签:

【中文标题】AFHTTPRequestOperationManager urlstring 编码和无效参数不满足:URLString【英文标题】:AFHTTPRequestOperationManager urlstring encoding & Invalid parameter not satisfying: URLString 【发布时间】:2013-11-28 07:16:26 【问题描述】:

我正在使用 afnetworking 2.0 加载 json:

NSString *weatherUrl = @"http://www.souche.com/pages/xx/xx.json?request_message=\"type\":\"car-subdivision\"";
weatherUrl = [weatherUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:weatherUrl parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) 
    NSLog(@"JSON: %@", responseObject);
 failure:^(AFHTTPRequestOperation *operation, NSError *error) 
    NSLog(@"Error: %@", error);
];

控制台错误:

 'Invalid parameter not satisfying: URLString'

需要url编码吗?

但我是这样做的:

NSString *weatherUrl = @"http://www.souche.com/pages/dicAction/loadRootLevel.json?request_message=%22type%22:%22car-subdivision%22";

还是错误!

我该怎么办?

【问题讨论】:

在您的 URL 字符串中最多添加 .json。其他的东西,参数,应该放在一个 NSDictionary 中并传递给parameters(你现在正在传递nil。) @AaronBrager 谢谢,它适用于 NSDictionary。 【参考方案1】:

您正在构建的 URL 以及您将参数传递(或不传递)到 AFNetworking 的方式似乎存在许多问题。您不需要自己构建查询字符串,因为 AFNetworking 会为您完成。正如我在上面的评论中提到的,将 query=where UserName='abc' 作为 URL 的一部分传递似乎是个坏主意。但是,如果您的 URL 稍有不同,这里有一个快速示例,说明如何调用 AFNetworking 的 GET 方法:

网址格式: https:////?username=abc&companyId=&page=1&pageSize=25&filterResultByColumns=true

你试试这个代码:D

【讨论】:

以上是关于AFHTTPRequestOperationManager urlstring 编码和无效参数不满足:URLString的主要内容,如果未能解决你的问题,请参考以下文章