如何使用 AFNetworking 在 Http 请求中发送 json 数据
Posted
技术标签:
【中文标题】如何使用 AFNetworking 在 Http 请求中发送 json 数据【英文标题】:How to send json data in the Http request using AFNetworking 【发布时间】:2016-02-06 06:24:35 【问题描述】:我必须将json格式的数据传递给服务器
"email":"abc@gmail.com","password":"abc"
我已经使用了这段代码,但是数据没有传递到服务器请帮助我..
NSDictionary *dict1=@@"email": @"biren123@gmail.com";
NSDictionary *dict2=@@"password": @"biren";
services *srv=[[services alloc]init];
NSString *str=@"http://emailsending.in/setting_saver_api/";
NSString *method=@"login.php";
NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
[dict setValue:dict1 forKey:@"email"];
[dict setValue:dict2 forKey:@"password"];
[srv postToURL:str withMethod:method andParams:dict completion:^(BOOL success, NSDictionary *responseObj)
NSLog(@"res :%@",responseObj);
NSLog(@"%d",success);
NSLog(@"Successfully..................");
];
【问题讨论】:
【参考方案1】:您可以在以下位置查看您的链接 https://www.hurl.it/
1) 提供您的 http 链接
2) 选择您的方法类型“获取”或“发布”
3)添加参数
并检查响应。如果您得到相同的响应,请联系您的后端团队。
【讨论】:
如何在hurl中发送json参数? 名称/值属性对的 JSON 对象。属性名称用于参数名称。属性值应该是一个值数组。如果您需要指定多个具有相同名称但值不同的参数,请指定一次名称并将值传递到数组中。仅在指定的方法为 POST、PUT、PATCH 或 DELETE 时使用。例如,"name":["John"] 或 "name":["John", "Frank"]。试试看 我在我的问题中给你链接、方法和参数,所以给我完整的链接,这样我就可以测试你测试并给我回复,因为我不明白如何在 hurl 中传递参数 "status":"0","msg":"Data is required",此回复即将发布。联系您的后端团队 好的,谢谢我在我的代码中得到相同的响应,所以我的代码方面有错误?【参考方案2】:试试这个。 1)使用 NSJSONSerialization 将您的字典转换为 json 并将其存储在 NSdata 中。
NSData * eventData = [NSJSONSerialization dataWithJSONObject: params options:0 error:&err];
2) 将包含 json 的 NSdata 发布到您的服务器
【讨论】:
嗨,您可以编辑我上面的代码,以便我更好地理解【参考方案3】:试试这个,如果有帮助的话
NSString *str = @"http://emailsending.in/setting_saver_api/";
NSString*method = @"login.php";
services *srv=[[services alloc]init];
NSMutableDictionary *dict1 = [NSMutableDictionary dictionary]; [dict1 setValue:@"biren123@gmail.com" forKey:@"email"];
NSMutableDictionary *dict2 = [NSMutableDictionary dictionary]; [dict2 setValue:@"biren" forKey:@"password"];
NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];
[dict setValue:dict1 forKey:@"email"];
[dict setValue:dict2 forKey:@"password"];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:str parameters:dict success:^(NSURLSessionDataTask
*task, id responseObject)
NSLog(@"JSON: %@", responseObject);
//here is place for code executed in success case
failure:^(NSURLSessionDataTask *task, NSError *error)
//here is place for code executed in error case
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error while sending POST"
message:@"Sorry, try again."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
NSLog(@"Error: %@", [error localizedDescription]); ];
【讨论】:
以上是关于如何使用 AFNetworking 在 Http 请求中发送 json 数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AFNetworking 在 http 中将 json 数据作为参数传递
如何使用 AFNetworking 在 Http 请求中发送 json 数据
如何使用 AFNetworking 2 设置 HTTP 请求?
在 AFNetworking 3.0 中使用自定义 HTTP 标头