AFNetworking - 如何通过 ID 发出 POST 请求
Posted
技术标签:
【中文标题】AFNetworking - 如何通过 ID 发出 POST 请求【英文标题】:AFNetworking - How to make POST request by ID 【发布时间】:2014-07-15 05:16:13 【问题描述】:我是 iPhone 开发的新手,我使用 AFNetworking 作为我的服务库。
我正在查询的 API 是 JSON API,我需要发出 POST 请求以按 ID 获取数据,这是获取新闻图像和描述的详细视图,对于列表新闻我使用了 GET 请求它在我有 NewsID 的那个 GET 方法中运行良好。为此,我尝试使用以下代码:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @@"News_Id": @"2",
@"News_Id": @"3",
@"News_Id": @"5";
[manager POST:@"http://almithaq.mawaqaademo.com/AlMithaqService/API.svc/getNews_ByID" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject)
NSLog(@"JSON: %@", responseObject);
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"Error: %@", error);
];
并在AFJSONResponseSerializer 中的acceptableContentTypes 中添加@"text/html" 现在得到以下错误:
2014-07-15 12:22:18.030 News[2541:60b] Error: Error Domain=NSCocoaErrorDomain Code=3840
"The operation couldn’t be completed. (Cocoa error 3840.)"
(JSON text did not start with array or object and option to allow fragments not set.)
UserInfo=0x8cf0060 NSDebugDescription=JSON text did not start with array or object and
option to allow fragments not set., NSUnderlyingError=0x8cefcb0 "Request failed: bad
request (400)"
【问题讨论】:
您应该使用 GET 请求来获取数据。 POST 请求用于修改服务器上的数据(通常将一些对象添加到集合中)。您需要咨询服务器 API 如何执行此操作。如果这是一个 RESTful API,您通常使用像http://example/api/news/123
这样的 url 获取具有指定 ID 的某个对象,其中最后一个路径组件是 ID,而“新闻”组件指定容器。
【参考方案1】:
这似乎是服务器的问题。您可能需要检查是否需要任何凭据才能访问数据。
【讨论】:
如果我给出 "News_ID" = 3 ,邮递员就不会,我会成功收到帖子以上是关于AFNetworking - 如何通过 ID 发出 POST 请求的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 通过 HTTPS 发出 post 请求
如何在 AFNetworking 的帮助下发出 Twilio api Post 请求?
如何使用 AFNetworking 或 STHTTPRequest 发出 SOAP Web 服务请求?