如何传递 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 请求的主要内容,如果未能解决你的问题,请参考以下文章
如何在 moya 中通过 POST 请求传递 JSON 正文
如何在 Android 的改造请求中传递 JSON 对象并检索 JSON 对象?
如何使用android studio中的改造服务在请求中传递json