无法使用sendSynchronous方法命中服务器

时间:2012-02-16 14:23:45

标签: iphone request synchronous

我正在使用同步请求将图像作为hexa字符串发送到服务器。如果我发送六分辨率为200x150的图像,我无法点击服务器,但如果以较低的分辨率(如100x75)发送相同的图像,我可以从服务器获得响应。

NSMutableString *urlString = [NSMutableString    stringWithString:@"http://xxxxxx:8080/GeoLocationSave/ReceiveImage"];
UIImage *sample = [UIImage imageNamed:@"ip_addphoto_100x75@2x.png"];
NSData *imgData = UIImagePNGRepresentation(sample);
[urlString appendString:@"?image="];
[urlString appendString:hexImage];
NSError *error;
error=nil;
NSURLResponse *response;
response=nil;
NSURL *url = [NSURL URLWithString:urlString];
NSData *urlData = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:url] returningResponse:&response error:&error];

对于更高分辨率的图像,urlData的长度为0。两个图像的imageData的日志值是完美的。我没有看到任何入口点登录服务器以获得更高分辨率的图像。

2 个答案:

答案 0 :(得分:0)

NSData *urlData = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:urlString] 
                                        returningResponse:&response 
                                                    error:&error];

NSString *result = [[NSString alloc] initWithData:urlData 
                                         encoding:NSUTF8StringEncoding];
NSLog(@"return: %@" , result); // to see the response

您在此处使用的网址为[NSURLRequest requestWithURL:url],但您使用的是urlString。你在哪里设置URL等于什么?

答案 1 :(得分:0)

大家好我发现了我犯的错误。通过HTTP Get方法推送大到8000字节的数据太荒谬了。我注意到,如果url长度大于8000字节,则不会命中服务器。所以我只是转移到HTTP POST方法,如果通过相机拍摄的图像(可以很容易地超过8000字节长度)发送到服务器,它将不会命中服务器。