首先第一次跟.net后臺配合,一個(gè)很簡單的傳圖片給后臺
之前都是java后臺, 要求傳圖片都是 將圖片轉(zhuǎn)String類型,然后拼接參數(shù)穿給后臺,這個(gè)沒啥說的
這次后臺要直接傳NSData類型,用了如下方法,后臺說接收到了但是數(shù)據(jù)不對,讓我去掉name,filename, mimeType這三個(gè)字段,于是繼續(xù)找別的方法:
+ (void)uploadHeadImage:(NSData *)imageData back:(void(^)(NSDictionary * dic))block
{
NSString *headUrl = [NSString stringWithFormat:@"%@%@",CommonUrl,UploadHeadImage];
NSDictionary *params = @{@"userId":UserInfo(User_user_id)};
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc]initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
manager.responseSerializer.acceptableContentTypes =[NSSet setWithObjects:@"text/html",@"application/json",@"image/png",nil];
[manager POST:headUrl parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
[formData appendPartWithFileData:imageData
name:@"file"
fileName:@"file.png"
mimeType:@"png"];
} progress:^(NSProgress * _Nonnull uploadProgress) {
// NSLog(@"%@",uploadProgress);
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
block(responseObject);
if (responseObject && [responseObject[@"status"] isEqualToString:@"1"]) {
}else {
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"%@", error);
}];
});
}
下面是我最后解決的方法, 在網(wǎng)上沒有找到類似的, 所以貼出來,粘貼就可以用,原諒我的學(xué)藝不精
NSString *urlStr = [NSString stringWithFormat:@"你的拼接好的URL"];
NSLog(@"打印輸出URL===%@", urlStr);
NSString *resultUrl = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString:resultUrl];
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:url cachePolicy:1 timeoutInterval:2.0f];
request.HTTPMethod=@"POST";//設(shè)置請求方法是POST
request.timeoutInterval=15.0;//設(shè)置請求超時(shí)
// NSData *imageData = UIImagePNGRepresentation(self.photoImage);
NSData *imageData = UIImageJPEGRepresentation(imageV, 0.5);
//聲明myRequestData鸠信,用來放入http body
NSMutableData *myRequestData=[NSMutableData data];
//將image的data加入
[myRequestData appendData:imageData];
//設(shè)置HTTPHeader中Content-Type的值
NSString *content=[[NSString alloc]initWithFormat:@"text?;"];
//設(shè)置HTTPHeader
[request setValue:content forHTTPHeaderField:@"Content-Type"];
//設(shè)置Content-Length
[request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[myRequestData length]] forHTTPHeaderField:@"Content-Length"];
//設(shè)置http body
[request setHTTPBody:myRequestData];
NSURLSession *session=[NSURLSession sharedSession];
NSURLSessionDataTask *dataTask=[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
id result=[NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"post==%@",result);
NSString *tips = result[@"tips"];
if ([tips isEqualToString:@"上傳成功"]) {
}
}];