如何编写代码以使用Afnetworking为以下JSON格式发送POST方法。
{
Media
{
Photo : image.jpg,
UserId : 2
},
Personal
{
Name : aaa,
Age : 30
},
Education
{
College : xxx,
Course : yyy
},
}
答案 0 :(得分:0)
显然这不是真正的格式,但我们可以猜出你的意思。显然,如果这些数值(用户id和年龄)被期望为字符串,那么引用然后,但希望它说明该字典的Objective-C表示可能是什么样子:
NSDictionary *parameters = @{@"Media": @{@"Photo": @"image.jpg", @"UserId": @2}, @"Personal": @{@"Name": @"aaa", @"Age": @30}, @"Education": @{@"College": @"xxx", @"Course": @"yyy" }};
然后您可以将其发布为JSON,如下所示:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager POST:@"https://yoururl.com" parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"responseObject = %@", responseObject);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"error %@", error);
}];
如果您的服务器不支持HTTPS,但只支持HTTP,那么您可能需要将Info.plist
的“应用传输安全设置”更改为“允许任意负载”。
答案 1 :(得分:0)
首先制作一份你要发送的参数字典
NSDictionary *params = @{
@"contact_no":@"9898989898",
@"password":@"••••••••••"
};
然后编写以下代码
AFHTTPRequestOperationManager *operationManager = [AFHTTPRequestOperationManager manager];
operationManager.requestSerializer = [AFJSONRequestSerializer serializer];
operationManager.responseSerializer = [AFJSONResponseSerializer serializer];
operationManager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", nil];
[operationManager POST:urlString parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject){
NSLog(@"%@",responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error){
if (failure)
NSLog(@"%@",error.localizedDescription);
}];
您可以忽略我设置acceptableContentTypes
的行。
希望这会有所帮助。