如何传递JSON请求

时间:2012-03-18 13:34:57

标签: objective-c ios json afnetworking

我是AFNetworking框架的新手。我尝试向服务器发送JSON请求以获取JSON响应,所以我尝试了这样的事情:

NSURL *url = [NSURL URLWithString:@"http://data.mycity.gov/api/views/INLINE/rows.json?method=index"];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setValue:[NSString stringWithFormat:@"application/json"] forHTTPHeaderField:@"Content-Type"];

    AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
        NSLog(@"Success");
    } failure:^(NSURLRequest* req,NSHTTPURLResponse *req2, NSError *error,id mex) {
        NSLog(@"Failed");
        NSLog(@"%@",[error description]);

    }];

    [operation start];  

所以我总是发现自己陷入了失败障碍,这个错误描述:

Error Domain=com.alamofire.networking.error Code=-1011 "Expected status code in (200-299), got 400" UserInfo=0x7b58030 {NSErrorFailingURLKey=http://data.mycity.gov/api/views/INLINE/rows.json?method=index, NSLocalizedDescription=Expected status code in (200-299), got 400}

有什么想法吗?我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

状态代码400表示 - 错误请求 由于语法格式错误,服务器无法理解请求。客户不应该在没有修改的情况下重复请求。

当我尝试转到该网址时: http://data.mycity.gov/api/views/INLINE/rows.json?method=index” ,我得到一个未找到的错误

确保您使用的API是正确的,如果Web服务返回JSON,您应该能够在浏览器中键入该URL并获得JSON响应。

答案 1 :(得分:0)

您的服务器似乎正在返回400,“错误请求”。检查您的网址是否正确。

顺便说一句,你的stringWithFormat是多余的。你可以替换

[NSString stringWithFormat:@"application/json"] 

@"application/json"