iOS总是返回失败的基本登录post请求
我试着做一个基本的登录。当我通过Postman请求时,我的API工作正常,它返回了我预期的成功,但iOS总是返回失败。下面是我的iOS代码 Edit:1-服务器总是返回json,例如{response_message:fail} 2-服务器返回失败,响应代码为200iOS总是返回失败的基本登录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
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数据时。请检查将为给定服务发送何种类型的参数