AFNetworking JSON请求无效

时间:2013-06-30 15:41:41

标签: php ios json afnetworking

我正在尝试开始此操作,甚至没有进入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 =}

1 个答案:

答案 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 以外的其他内容,否则无需替换现有标题行。