AFNetworking 将参数作为表单数据发送
Posted
技术标签:
【中文标题】AFNetworking 将参数作为表单数据发送【英文标题】:AFNetworking send parameters as form data 【发布时间】:2016-02-15 08:22:46 【问题描述】:我一直在尝试通过将内容类型设置为 application/x-www-form-urlencoded 到 HTTPHeaderField 来将参数作为表单数据发送,但请求仅适用于上述内容类型,我的代码适用于 application/json 类型. 所以,我无法纠正实际问题,因此请求没有通过。
下面是我的代码::
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setTimeoutInterval:60];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:requestAuthorization forHTTPHeaderField:@"Authorization"];
[manager.requestSerializer setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
[manager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[manager.requestSerializer setValue:[[[UIDevice currentDevice] identifierForVendor] UUIDString] forHTTPHeaderField:@"device_id"];
[manager.requestSerializer setValue:[[UIDevice currentDevice] systemVersion] forHTTPHeaderField:@"device_os"];
[manager.requestSerializer setValue:[[UIDevice currentDevice] systemName] forHTTPHeaderField:@"device_name"];
[manager POST:url parameters:parameters success:success failure:failure];
任何帮助将不胜感激。
谢谢
【问题讨论】:
【参考方案1】:它在 Github 上的 AFNetworking 页面上给出。 AFNetworking Library
您可以通过简单地使用以下示例来做到这一点:-
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @@"key": @"xxx";
[manager POST:@"http://test.com" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject)
NSLog(@"JSON: %@", responseObject);
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"Error: %@", error);
];
【讨论】:
要上传大文件到服务器吗? 不,我只想将参数作为表单数据发送,这就是为什么我设置 [manager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type "]; 请不要在您的代码中设置此项并尝试:- [manager.requestSerializer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];跨度> 仍然无法通过,API 可以通过 Advance Rest 客户端访问,但不能通过 AFNetworking 访问,即无法将参数作为表单数据发布。 完美答案以上是关于AFNetworking 将参数作为表单数据发送的主要内容,如果未能解决你的问题,请参考以下文章
使用 AFNetworking 2 将十六进制字符串作为数据发送到服务器
AFNetworking 在 GET 请求的 JSON 参数中发送数组
AFNetworking 将 NSMutableDictionary 作为 POST 发送