1
wy315700 2015-07-08 10:43:12 +08:00
status code: 500 服务器报错了。。
|
2
sunjws OP @wy315700 同样的接口 自己写了一个简单的代码测试后,能够正常解析出数据
//用这个方法请求接口能够正常返回数据 -(NSData *)returnDownLoadWithJsonRequestStr:(NSString *)json Url:(NSString *)url { //第一步,创建URL NSURL *url1 = [NSURL URLWithString:[NSString stringWithFormat:@"%@",url]]; //第二步,创建请求 NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url1 cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]; [request setHTTPMethod:@"POST"];//设置请求方式为POST,默认为GET //NSString *str = [NSString stringWithFormat:@"%@",json];//设置参数 NSData *data = [json dataUsingEncoding:NSUTF8StringEncoding]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setHTTPBody:data]; //第三步,连接服务器 NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; // NSLog(@"aaaaaa = %@",received); return received; } |
3
laoyur 2015-07-08 11:02:39 +08:00
自己抓包看两个请求有啥不同
|
4
hyzjshwo 2015-07-08 11:20:15 +08:00
看到192.168.xxx.xx 这样的段位,我问问是不是在外网调试?
|
5
sobigfish 2015-07-08 11:25:55 +08:00 1
500肯定先查服务端,你先把两个(AFNetWorking和自己写的)请求都直接dump出来看看区别 而且两个请求的格式都不一样 text/html application/json
|
6
jianzong 2015-07-08 12:23:00 +08:00
可以先用postman确定是不是api服务器的问题
|
7
dorentus 2015-07-08 12:25:42 +08:00
gist 里面的 Request:
- Content-Type 没设置 - 设置了 Accept: text/html (但是这不合理,因为后面的代码里面明显可以看出你要的是 application/json 的返回数据) - paramRequest 这个 Dictionary 是用表单参数的方式序列化为 POST body 来提交的 下面你手写的代码: - Content-Type 设置成了 application/json - Accept 没有设置 - paramRequest 这个 Dictionary 是序列号成 JSON 格式的字符串然后直接作为 POST body 提交的 ---- 前两点不同,取决于你服务端的设置,可能会导致出错,也可能不出错 第三点,直接导致你服务端收到的数据是完全不一样的;看起来,你的服务端期待的是 POST body 直接是 JSON 格式这种形式。 |
8
pupboss 2015-07-08 12:25:52 +08:00
AFN 默认不支持 text/html,找到之后添加上就好了,估计是这个原因
|
9
PopeyeLau 2015-07-08 12:55:00 +08:00
`self.responseSerializer.acceptableContentTypes =[NSSet setWithObjects:@"text/html", @"application/json",nil];`
|