使用AFNetworking生成POST消息?

时间:2015-01-28 09:41:45

标签: ios objective-c xcode curl afnetworking

因此,我使用终端中的命令从我的Web服务返回JSON:

curl --data 'method=my-service.search&document_type=x&keywords=y' http://mywebsite.com/services/json/my-service.search

我一直试图通过AFNetworking获取此数据,以便在应用中进行解析和使用。到目前为止,这是我尝试过的:

NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"document_type", @"keywords", nil];

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:urlString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) 

我将URL字符串设置为http://mywebsite.com/services/json/my-service.search,字典应包含搜索参数。

但是我收到一条错误消息,说明由于"不可接受的内容类型而导致请求失败:text / html" (显然,它想要JSON)。

所以我的问题如下:你如何通过AFNetworking执行cURL数据请求?

我也有一个红利问题:你如何与字典中的参数进行交互(比如,将关键字字段设置为" Stack Overflow"或类似的东西)?

感谢您的帮助!我刚刚开始,所以任何建议都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令指定内容类型:

[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

但首先要确保设置属性请求序列化器:

manager.requestSerializer = [AFJSONRequestSerializer serializer];

应自动设置内容类型

还使用POST:而不是GET: