我正在使用同步请求将图像作为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的日志值是完美的。我没有看到任何入口点登录服务器以获得更高分辨率的图像。
答案 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字节长度)发送到服务器,它将不会命中服务器。