美文网首页iOS OCiOS SwiftiOS学习
iOS AFNetWorking PUT 方式上传图片

iOS AFNetWorking PUT 方式上传图片

作者: longMountain | 来源:发表于2019-02-13 11:39 被阅读1次
    + (void)PUT:(NSString *)URLString isNeedToken:(BOOL)isNeedToken data:(NSData *)data parameters:(NSDictionary *)parameters progress:(NetworkingProgress)progress success:(NetworkingSuccess)success failure:(NetworkingFailure)failure {
        TJMTokenModel *tokenModel = [TJMSandBoxManager getTokenModel];
        if (tokenModel) {
            NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
            AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
            NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] multipartFormRequestWithMethod:@"PUT" URLString:URLString parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
                if (data) {
                    [formData appendPartWithFileData:data name:@"file" fileName:@"data.txt" mimeType:@"multipart/form-data"];
                }
            } error:nil];
            if (isNeedToken) {
                [request setValue:tokenModel.realToken forHTTPHeaderField:@"Authorization"];
            } else {
                [request setValue:nil forHTTPHeaderField:@"Authorization"];
            }
            //        [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
            if (parameters && parameters.count > 0) {
                [request setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:NSJSONWritingPrettyPrinted error:nil]];
            }
            __block NSURLSessionDataTask *task;
            task = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull uploadProgress) {
                if (progress) {
                    progress(uploadProgress);
                }
            } completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
                if (!error) {
                    [self requestSuccessWithSessionDataTask:task responseObject:responseObject success:success failure:failure];
                } else {
                    [self requestFailureWithSessionDataTask:task error:error failure:failure];
                }
            }];
            [task resume];
        }
    }
    

    相关文章

      网友评论

        本文标题:iOS AFNetWorking PUT 方式上传图片

        本文链接:https://www.haomeiwen.com/subject/xyireqtx.html