AFHTTPRequestOperationManager 不向 php 页面发送参数
Posted
技术标签:
【中文标题】AFHTTPRequestOperationManager 不向 php 页面发送参数【英文标题】:AFHTTPRequestOperationManager not sending parameter to php page 【发布时间】:2014-02-28 03:52:12 【问题描述】:我正在尝试使用 AFNetworking 向我的一个页面(php 页面)发送一些键值。我正在使用 AFHTTPRequestOperationManager 进行此操作,发布成功但是我在服务器端接收到空白值。
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *params = @@"name":@"1234", @"email":@"1234",@"regId":@"rty2345",@"device_flag":@"2";
NSLog(@"%@", params);
manager.responseSerializer = [AFJSONResponseSerializer serializer]; // if response JSON format
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
[manager POST:@"http://xyz.in/app/apns/register.php" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject)
[self databaseInsertion];
ShowViewController *mapp = [[self storyboard]instantiateViewControllerWithIdentifier:@"showview"];
[self.navigationController pushViewController:mapp animated:YES];
NSLog(@"%@", responseObject);
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
failure:^(AFHTTPRequestOperation *operation, NSError *error)
NSLog(@"%@", error);
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
];
我正在发回一个 JSON 字符串,以便执行成功块。但是当我尝试在服务器端获取值时,所有值都显示为空白。
然后我尝试使用 NSMutableURLRequest *request 发送数据,结果也相同,当我尝试使用浏览器发送http://www.xyz.in/app/apns/register.php?name=15&email=1234®Id=r5678d&device_flag=2 之类的数据时,效果很好。
我使用 NSMutableURLRequest 的代码如下
NSString *post =[[NSString alloc] initWithFormat:@"name=%d&email=%d®Id=%@&device_flag=%d", status,[_emailTextField.text intValue],@"r5678d",2];
NSLog(@"%@",post);
NSURL *url=[NSURL URLWithString:@"http://xyz.in/app/apns/register.php"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
【问题讨论】:
【参考方案1】:我不知道帖子中出了什么问题,但是我只是从以前的项目中剪切并粘贴了代码,它就像一个魅力。
NSString *post =[[NSString alloc] initWithFormat:@"name=%d&email=%d®Id=%@&device_flag=%d", status, [[_emailTextField text] intValue],app.deviceTooken,2];
NSURL *url=[NSURL URLWithString:@"http://www.xyz.in/app/apns/register.php"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSError *error;
NSURLResponse *response;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *data=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
NSLog(@"Data is %@",data);
但是我仍然怀疑 AFHTTPRequestOperationManager 为什么参数没有到达我的 php 文件。你有什么想法吗?
【讨论】:
我不知道但是同一段代码现在已经开始工作了。但是,我应该得到的响应(并且我在正常的 NSMutableURLRequest 中得到)不是使用 AFHTTPRequestOperationManager 来的。它总是显示 0。以上是关于AFHTTPRequestOperationManager 不向 php 页面发送参数的主要内容,如果未能解决你的问题,请参考以下文章