我正在尝试开始此操作,甚至没有进入NSLOG。 我猜它是我的stringUrl的东西,也许它不应该像这样工作?
这是我的代码:
NSString *stringUrl = [[NSString alloc]initWithFormat:@"http://example.com/add_user.php?username=%@&password=%@&country=%@&email=%@",[self.usernameTextField text],[self.passwordTextField text], countrySelected, [self.emailTextField text]];
NSURL *url = [NSURL URLWithString:stringUrl];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSDictionary *dict = JSON;
NSLog(@"IP Address: %@", [JSON valueForKeyPath:@"item"]);
} failure:nil];
[operation start];
编辑: 这是我从失败块中得到的:
错误域= AFNetworkingErrorDomain代码= -1016“预期内容类型{( “文/ JSON”, “应用程序/ JSON”, “文/ JavaScript的” }},得到text / html“UserInfo = 0xa2b4300 {NSLocalizedRecoverySuggestion = {”type“:”1“,”item“:”用户已成功添加。“} ,AFNetworkingOperationFailingURLRequestErrorKey = http://EXAMPLE.com/add_user.php?username = aaasafasfasf& password = aaa& country = Angola& email = aaaasfasfasfasfasf&gt ;, NSErrorFailingURLKey = http://EXAMPLE.com/add_user.php?username=aaasafasfasf&password=aaa&country=Angola&email=aaaasfasfasfasfasf,NSLocalizedDescription =预期内容类型{( “文/ JSON”, “应用程序/ JSON”, “文/ JavaScript的” ),得到text / html,AFNetworkingOperationFailingURLResponseErrorKey =}
答案 0 :(得分:4)
为了进入AFJSONRequestOperation的成功块,您还需要遵守服务器发送的正确内容类型。目前您的服务器正在返回 text / html 内容类型作为响应,因此它将进入故障块。
正如故障阻止消息所示,将您返回的内容类型更改为 text / json 或 application / json ,因为您正在使用AFJSONRequestOperation。
对于PHP,您可以按照此问题中的答案更改返回的内容类型:How to change content type in php?
您只需在现有标题行下方添加一行:
header('Content-Type: text/json');
除非有一个标题行将内容类型设置为 text / json 或 application / json 以外的其他内容,否则无需替换现有标题行。