在 AFNetwoking 3.0 中上传 Zip 文件
Posted
技术标签:
【中文标题】在 AFNetwoking 3.0 中上传 Zip 文件【英文标题】:upload Zip file in AFNetwoking 3.0 【发布时间】:2016-09-05 06:39:21 【问题描述】:我正在使用 AFNetworking 3.0 在服务器上上传 Zip 文件,但它从服务器端给出以下错误。
代码
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://www,baseurl.com”]];
[manager.requestSerializer setValue:@“headertoeknvalue” forHTTPHeaderField:@"Authorization"];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"];
[ manager POST:@"sync.php" parameters:dictPost constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData)
NSData *data = [[NSFileManager defaultManager] contentsAtPath:[APP_DELEGATE.strDocumentDirectoryPath stringByAppendingString:@"/Database.zip"]];
[formData appendPartWithFileData:data
name:@"sync_file"
fileName:@"Database.zip" mimeType:@"application/json"];
progress:^(NSProgress * _Nonnull uploadProgress)
success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject)
NSLog(@"Response: %@", responseObject);
failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error)
NSLog(@"error: %@", error.description);
];
错误
[Error] POST (401) [7.6721 s]: Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: unauthorized (401)" UserInfo=com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x79735300> URL: status code: 401, headers
"Cache-Control" = "no-cache";
Connection = "Keep-Alive";
"Content-Type" = "application/json";
Date = "Mon, 05 Sep 2016 06:32:54 GMT";
"Keep-Alive" = "timeout=5, max=100";
Server = "Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/1.0.1e-fips mod_bwlimited/1.4";
"Transfer-Encoding" = Identity;
"X-Powered-By" = "PHP/5.5.38";
, NSErrorFailingURLKey=, NSLocalizedDescription=Request failed: unauthorized (401), com.alamofire.serialization.response.error.data=<7b227374 61747573 223a6661 6c73652c 22737461 74757343 6f646522 3a343031 2c226d65 73736167 65223a22 546f6b65 6e206162 73656e74 227d>
【问题讨论】:
你可以参考这个链接:***.com/questions/25829236/… 尝试将@"application/json"
更改为application/x-zip
或"application-x-zip"
。
【参考方案1】:
401 错误 Code=-1011 "Request failed: unauthorized (401)"
检查天气您的令牌是否有效
您的问题是在我们序列化请求之前交换您通过授权的行,因此您需要如下交换行
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://www,baseurl.com”]];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager.requestSerializer setValue:@“headertoeknvalue” forHTTPHeaderField:@"Authorization"];
【讨论】:
以上是关于在 AFNetwoking 3.0 中上传 Zip 文件的主要内容,如果未能解决你的问题,请参考以下文章
应用程序更新的 AFNetwoking 或 UIWebview 折旧期限