如何传递 JSON 请求

Posted

技术标签:

【中文标题】如何传递 JSON 请求【英文标题】:How to pass JSON request 【发布时间】:2012-03-18 13:34:56 【问题描述】:

我是 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

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

【问题讨论】:

Malek,我不确定 JSON 请求是什么意思 - 这是一个 HTTP 请求,可能缺少一些请求的参数。您是否有从 API 请求数据的规范? 你好 Shai,是的,这是一个 HTTP 请求,但为了获得 JSON 响应。 【参考方案1】:

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

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

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

【讨论】:

我知道问题的根源了,我以前和ASIHTTPRequest 一起工作,我用过:[request appendPostData:[json dataUsingEncoding:NSUTF8StringEncoding]]; 你知道如何对AFNetworking 做同样的事情吗? 你能贴出你以前用于 ASI 的 Web 服务请求代码吗?如果我能在之前和之后看到整个请求调用,我应该能够帮助你弄清楚。【参考方案2】:

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

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

[NSString stringWithFormat:@"application/json"] 

@"application/json"

【讨论】:

以上是关于如何传递 JSON 请求的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Json 请求的参数中传递 ID 数组

如何在 moya 中通过 POST 请求传递 JSON 正文

如何在 Android 的改造请求中传递 JSON 对象并检索 JSON 对象?

如何使用android studio中的改造服务在请求中传递json

如何将 JSON 传递给 Django 中的 Ajax 请求?

如何利用jQuery post传递含特殊字符的数据