响应为空

时间:2015-04-24 11:43:41

标签: ios objective-c

我的回复显示为空。但是当你在浏览器中输入url时它会显示1.但是在我的代码中它返回0。 网址为http://boomagift.ramansingla.com/forgotpassword.php?email=nihal@gmail.com。如果有人可以帮助我,我真的很感激。我是iOS的新手。

+(NSDictionary *)forgotpassword:(NSString *)email
{
    NSDictionary *dict=[[NSDictionary alloc]init];


    NSString *urlStr=[NSString stringWithFormat:@"http://boomagift.ramansingla.com/forgotpassword.php?email=%@",email];
    NSLog(@"%@",urlStr);

    NSMutableURLRequest *request=[[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlStr]];
    dict  =  [self sendRequest:request];
    NSLog(@"%@",dict);

    return dict;
}

+(NSDictionary *)sendRequest:(NSMutableURLRequest *)request
{
    NSHTTPURLResponse *response;
    NSError *error;
    NSData *responseData;
    responseData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    if(responseData&&[responseData length])
    {

       NSDictionary *dictionary=[NSJSONSerialization JSONObjectWithData:responseData options:0 error:&error];
        return dictionary;
    }
    else
    {
        UIAlertView *noInternetAlert=[[UIAlertView alloc] initWithTitle:@"Boom A GIft" message:@"Server Error" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [noInternetAlert show];
        noInternetAlert=nil;
        return nil;
    }
}

1 个答案:

答案 0 :(得分:1)

响应数据不是有效的JSON,因为它的顶级项是数字,而不是Collection(列表或对象)。

  

可以转换为JSON的对象必须具有以下内容   属性:

     
      
  • 顶级对象为NSArrayNSDictionary

  •   
  • 所有对象都是NSStringNSNumberNSArray的实例,   NSDictionaryNSNull

  •   
  • 所有词典键都是NSString

  • 的实例   
  • Numbers不是NaN或无穷大。

  •   

您可以将序列化程序配置为使用options参数接受顶层的非集合对象。

enum {
  NSJSONReadingMutableContainers = (1UL << 0),
  NSJSONReadingMutableLeaves = (1UL << 1),
  NSJSONReadingAllowFragments = (1UL << 2)
};
typedef NSUInteger NSJSONReadingOptions;
  

NSJSONReadingAllowFragments

     

指定解析器应该允许   不属于NSArrayNSDictionary的实例的顶级对象。

     

在OS X v10.7及更高版本中可用。

BTW:使用错误输出参数返回nil(不是NULL)不是在开玩笑,而是一个提示,问题是什么。 ; - )