AFNetworking发送JSON作为POST请求的参数 [英] AFNetworking Send JSON as a parameter for POST request
本文介绍了AFNetworking发送JSON作为POST请求的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我针对同一问题给出了多个答案...但是无法弄清楚这个问题..我遇到了这个错误
I gone several answers for the same question...but unable to figure out this issue..i am getting this error
*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* + [NSJSONSerialization dataWithJSONObject:options:error:]:JSON中的无效顶级类型 写'
* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* +[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write'
我的代码是:
NSDictionary *loginDict=[[NSDictionary alloc] initWithObjectsAndKeys:password.text,@"password",userName.text,@"userName",nil];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:loginDict options:NSJSONWritingPrettyPrinted error:&error];
if (jsonData) {
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
} else {
NSLog(@"Got an error: %@", error);
}
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setTimeoutInterval:20];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
[manager POST:baseUrlLogin parameters:jsonString
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
推荐答案
尝试一下
直接在呼叫中传递loginDict
并检查
directly pass loginDict
in your call and check
manager.requestSerializer = [AFJSONRequestSerializer serializer];
/*
[manager.requestSerializer setTimeoutInterval:20];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
*/
[manager POST:baseUrlLogin parameters: loginDict
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
这篇关于AFNetworking发送JSON作为POST请求的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文