我使用以下代码来执行GET请求。以相反的方式将params发送到服务器并将数据存储在服务器中。但我得到了错误 * JSON文本不是以数组*
开头的AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *params = @{@"emails": emailid,
@"password": paswrd,
@"gender": gende,
@"firstname":name1,
@"lastname":firstname1,
@"dateofBirth":dob1,
@"Country":count
};
[manager GET:@"http://37.187.152.236:91/EmployeeSvc.svc/AddEmployee?"
parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
答案 0 :(得分:2)
-(void) testHTTPS {
AFSecurityPolicy *securityPolicy = [[AFSecurityPolicy alloc] init];
[securityPolicy setAllowInvalidCertificates:YES];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager setSecurityPolicy:securityPolicy];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager GET:[NSString stringWithFormat:@"%@", HOST] parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"%@", string);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
答案 1 :(得分:1)
您可以查看您的服务内容类型,如果是text / html,则需要使用以下代码:
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
答案 2 :(得分:1)
此问题可能是由于错误的JSON字符串造成的。通过Bad JSON字符串,我的意思是您的JSON响应可能不是以预期的字符开头,即&#39; [&#39; 或&#39; {&#39; < / strong>即可。起始字符必须始终为上述两个中的任何一个。
此外,您的JSON响应可能嵌入在某种XML字符串中。这件事发生在我身上,对我来说,只是我解释的JSON响应很糟糕,我通过适当的解析解决了这个问题。
检查此图片。这就是坏JSON的样子。
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">
[{"Title":"DemoTitle","CreationDate":"06/06/2014","Description":"DemoDescription"}]
</string>
如您所见,JSON嵌入在XML字符串中。**强文**另外,请检查此网站上的JSON响应:http://jsonlint.com/
这将显示您收到的JSON是否对解析有效。
希望这有帮助。
答案 3 :(得分:0)
当您的服务器未响应JSON响应或响应不是有效的JSON 时,这是服务器端错误,因为当AF网络库无法解析JSON响应时会出现此错误。 请与服务器端核对响应