我是用post连接学校的tomcat服务器,源码如下:
//返回一个json字符串的
-(NSString*)getAPI:(NSString*)api_url withPost:(NSString*)post_data{
//post提交的参数,格式如下:
//参数1名字=参数1数据&参数2名字=参数2数据&参数3名字=参数3
NSString *post = [NSString stringWithFormat:post_data];
//将NSSrring格式的参数转换格式为NSData,POST提交必须用NSData数据。
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingMacChineseSimp);
NSData *postData = [post dataUsingEncoding:enc allowLossyConversion:YES];
//计算POST提交数据的长度
NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]];
//定义NSMutableURLRequest
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
//设置提交目的url
[request setURL:[NSURL URLWithString:api_url]];
//设置提交方式为 POST
[request setHTTPMethod:@"POST"];
//设置http-header:Content-Length
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
//设置需要post提交的内容
[request setHTTPBody:postData];
//定义
NSHTTPURLResponse* urlResponse = nil;
NSError *error = [[NSError alloc] init];
//同步提交:POST提交并等待返回值(同步),返回值是NSData类型。
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];
//将NSData类型的返回值转换成NSString类型
NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSLog(@"request : %@",request);
NSLog(@"post data : %@",post_data);
NSLog(@"json data : %@",result);
return result;
}
问题很奇怪:我post数据是id=1&page=1的时候返回正常,但是id=1&page=2的时候就返回null了。。。
是不是服务器的问题?但是我用python测试了一下api没有问题。。
而且前面有个安桌版本,就是用的这个api。。。无奈了,想问问大家有没有遇到过类似的问题?