AFNetworking 2.0 Amazon PUT请求边界问题

时间:2013-10-30 19:03:15

标签: cocoa amazon-s3 afnetworking-2

由于ASIHTTPRequest已被放弃,我将ios / osx项目移至使用AFNetworking 2.0。我为AFHTTPRequestOperationManager编写了一个类别,它添加了一个创建Amazon S3 PUT请求的方法。它处理所有的签名等。这是很好的工作。但是,我遇到了上传图片的问题。文件已成功上载到S3,但未被识别为有效图像(jpg)文件。他们在photoshop中打开很好(它一定是宽容的)但没有别的。一些挖掘文件(运行cat)显示结束边界正被编码到文件

--Boundary+0xAbCdEfGbOuNdArY--

我已经仔细检查了HTTP头文件,它们看起来是正确的:

"Accept-Language" = "en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5";
Authorization = "AWS REDACTED";
"Content-Length" = 228941;
"Content-Type" = "multipart/form-data; boundary=Boundary+0xAbCdEfGbOuNdArY";
Date = "Wed, 30 Oct 2013 18:57:39 +0000";

我正在使用以下方式构建请求:

NSMutableURLRequest *request = [self.requestSerializer multipartFormRequestWithMethod:@"PUT" URLString:url.absoluteString parameters:parameters constructingBodyWithBlock:block];

构造块看起来像:

__weak UploadPhotoAFS3Op *weakSelf = self;
self.constructingBodyBlock = ^(id<AFMultipartFormData> formData) {
    UploadPhotoAFS3Op *strongSelf = weakSelf;
    if (strongSelf) {
        [formData appendPartWithFileData:resizedPhotoData name:@"image" fileName:strongSelf->_photoToUpload.uuidFileName mimeType:@"image/jpeg"];
    }
};

我确信resizedPhotoData有效 - 这与生成的当前基于ASIHTTPRequest的操作的生成方式相同。这个问题与标题有关(特别是边界) - 我不知所措。

0 个答案:

没有答案