在使用AFNetworking框架的时候,打印上传进度和回调,发现上传进度已经100%了,但是等了半天才回调,调用回调函数。
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:kJLXUrlCompleteRequest(urlStr) parameters:[[NSMutableDictionary alloc] initWithDictionary:dic] constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
for (int i=0; i<fromDatas.count; i++) {
JLXNetToolMultipartFormData *form = [fromDatas objectAtIndex:i];
[formData appendPartWithFileURL:[NSURL fileURLWithPath:form.filePath] name:form.postKey fileName:form.fileName mimeType:[form getMimeTypeStr] error:nil];
}
} error:nil];
[request setValue:[[JLXCommonTools sharedJLXCommonTools] getHttpHeaderStr] forHTTPHeaderField:@"ua"];
NSURLSessionUploadTask * uploadTask = [manager
uploadTaskWithStreamedRequest:request
progress:^(NSProgress * _Nonnull uploadProgress) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"%f",uploadProgress.fractionCompleted);
});
}
completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (self.errorUpCompletionHandler) {
self.errorUpCompletionHandler(response, responseObject, error);
}
}];
[uploadTask resume];
用的阿里云的服务器,然后让服务端查询,服务端查询从接受数据到返回居然需要6s,最后发现阿里云的上传有一个外网接口和一个内网接口,他们服务端之前用的是外网接口传的数据,然后改为内网接口之后,再测试,恢复正常,只需1s即可。
版权属于:东哥笔记 - DongGe.org
本文链接:https://dongge.org/blog/531.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!