Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS总是返回失败的基本登录post请求_Ios_Objective C_Ios7 - Fatal编程技术网

iOS总是返回失败的基本登录post请求

iOS总是返回失败的基本登录post请求,ios,objective-c,ios7,Ios,Objective C,Ios7,我试着做一个基本的登录。当我通过Postman请求时,我的API工作正常,它返回了我预期的成功,但iOS总是返回失败。下面是我的iOS代码 Edit:1-服务器总是返回json,例如{response_message:fail} 2-服务器返回失败,响应代码为200 NSString *postString = [[NSString alloc] initWithFormat:@"email=%@&hashed_password=%@",[self.email text],[self.p

我试着做一个基本的登录。当我通过Postman请求时,我的API工作正常,它返回了我预期的成功,但iOS总是返回失败。下面是我的iOS代码

Edit:1-服务器总是返回json,例如{response_message:fail} 2-服务器返回失败,响应代码为200

NSString *postString = [[NSString alloc] initWithFormat:@"email=%@&hashed_password=%@",[self.email text],[self.password text]];
//NSLog(@"Post Data: %@",postString);
NSData *postData = [postString dataUsingEncoding:NSASCIIStringEncoding];
NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];
NSURL *url = [NSURL URLWithString:@"http://api/url"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/x-www-form-encoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *response = nil;
NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSDictionary *jsonData = [NSJSONSerialization
                          JSONObjectWithData:urlData
                          options:NSJSONReadingMutableContainers
                          error:&error
                          ];
NSString *response_message = jsonData[@"response_message"];

我手动将电子邮件和密码嵌入url,并尝试在没有postData的情况下请求,它返回成功。我检查了电子邮件和密码输入,没有问题。然而,我是一个新手,尽管我注意到postData有问题,但我无法找出它的问题所在。

当你说它返回失败时,你是什么意思?您的NSError对象中是否有错误?响应中是否存在HTTP错误代码?返回错误结果的200?如果凭据不匹配,API返回失败;如果凭据匹配,则返回成功。更清楚地说,请求击中服务器,服务器说不。当我遇到POST方法错误时,我会检查内容类型。我不确定这是否是您的问题。是的,返回了错误结果的200。您正在编写[request setValue:@application/json forHTTPHeaderField:@Accept];当没有发送json数据时。请检查将为给定服务发送何种类型的参数