我尝试发送带有图像的 Post 请求时出错
Error when im trying to send Post Request with the image
当我尝试发送带有图像的 POST 请求时,出现此错误
线程 1:信号 SiGABART
我觉得这部分
[formData appendPartWithFileData:[NSData dataWithData:[self.images objectAtIndex:indexScroll]] name:@"FileUploadPost" fileName:@"image.jpg" mimeType:@"image/jpeg"];
导致错误
- (IBAction)uploadPhoto:(id)sender {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer new];
NSDictionary *parameters = @{@"HI": @"Hello"};
[manager POST:@"http://requestb.in/1c69jt31" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:[NSData dataWithData:[self.images objectAtIndex:indexScroll]] name:@"FileUploadPost" fileName:@"image.jpg" mimeType:@"image/jpeg"];
[formData appendPartWithFileData:[self.images objectAtIndex:indexOfPage] name:@"FileUploadPost" fileName:@"image.jpg" mimeType:@"image/jpeg"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSData * data = (NSData *)responseObject;
NSLog(@"Success,Response string: %@", [NSString stringWithCString:[data bytes] encoding:NSISOLatin1StringEncoding]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
如果 self.images
是 UIImage
对象的数组,您必须使用 UIImageJPEGRepresentation
或 UIImagePNGRepresentation
之类的东西来提取 NSData
UIImage
对象:
- (IBAction)uploadPhoto:(id)sender {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer new];
NSDictionary *parameters = @{@"HI": @"Hello"};
[manager POST:@"http://requestb.in/1c69jt31" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:UIImageJPEGRepresentation(self.images[indexScroll], 0.8)] name:@"FileUploadPost" fileName:@"image.jpg" mimeType:@"image/jpeg"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSData *responseString = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"Success,Response string: %@", responseString);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
当我尝试发送带有图像的 POST 请求时,出现此错误
线程 1:信号 SiGABART
我觉得这部分
[formData appendPartWithFileData:[NSData dataWithData:[self.images objectAtIndex:indexScroll]] name:@"FileUploadPost" fileName:@"image.jpg" mimeType:@"image/jpeg"];
导致错误
- (IBAction)uploadPhoto:(id)sender {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer new];
NSDictionary *parameters = @{@"HI": @"Hello"};
[manager POST:@"http://requestb.in/1c69jt31" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:[NSData dataWithData:[self.images objectAtIndex:indexScroll]] name:@"FileUploadPost" fileName:@"image.jpg" mimeType:@"image/jpeg"];
[formData appendPartWithFileData:[self.images objectAtIndex:indexOfPage] name:@"FileUploadPost" fileName:@"image.jpg" mimeType:@"image/jpeg"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSData * data = (NSData *)responseObject;
NSLog(@"Success,Response string: %@", [NSString stringWithCString:[data bytes] encoding:NSISOLatin1StringEncoding]);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
如果 self.images
是 UIImage
对象的数组,您必须使用 UIImageJPEGRepresentation
或 UIImagePNGRepresentation
之类的东西来提取 NSData
UIImage
对象:
- (IBAction)uploadPhoto:(id)sender {
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer new];
NSDictionary *parameters = @{@"HI": @"Hello"};
[manager POST:@"http://requestb.in/1c69jt31" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:UIImageJPEGRepresentation(self.images[indexScroll], 0.8)] name:@"FileUploadPost" fileName:@"image.jpg" mimeType:@"image/jpeg"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSData *responseString = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
NSLog(@"Success,Response string: %@", responseString);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}