AFNetworking显示http get操作的URL不受支持?

时间:2015-04-29 15:31:24

标签: ios objective-c afnetworking-2

现在我正在使用最新的AFNetworking库来执行HTTP Get操作,但我收到了不支持的URL错误消息

但是当相同时,我在浏览器中点击我正在获取数据

https://abc.xyz.com/status?id={"request":["123"," 456"]}

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager GET:BaseURLWithStatusInformation
      parameters:statusId
         success:^(AFHTTPRequestOperation *operation, id responseObject) {
             NSLog(@"JSON: %@", responseObject);
         } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
             NSLog(@"Error: %@", error);
         }];

所以这里BaseURLWithStatusInformation是https://abc.xyz.com/status?id=

和statusId是{"request":["123"," 456"]},即包含数组的字典。

1 个答案:

答案 0 :(得分:2)

好像你的参数应该是:

@{@"id": @"{\"request\":[\"123\",\" 456\"]}"}

您的BaseURLWithStatusInformation(可能现在称为BaseURL):

https://abc.xyz.com/status

因为你有混合的查询字符串和JSON。 AFNetworking不会同时做到这两点。我相信。

建议代码:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
id url = @"https://abc.xyz.com/status";
id params = @{@"id": @"{\"request\":[\"123\",\" 456\"]}"};
[manager GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

编辑:它可能值得检查服务器实际需要什么,这种JSON和查询字符串格式的混合有点奇怪。可能你的参数应该是:

@{@"id": @{@"request":@[@"123", @"456"]}}