使用NSURLSession,NSURLSessionUploadTask上传文件

来源:互联网 发布:衣服尺寸数据 编辑:程序博客网 时间:2024/06/11 02:10
和我们的NSURLConnection的方法差不多,只不过把设置HTTPBody换了个地方http://blog.csdn.net/baohanqing/article/details/51171947
////  ViewController.m//  NSURLSeesionUpload////  Created by hq on 16/4/18.//  Copyright © 2016年 hanqing. All rights reserved.//#import "ViewController.h"//boundary#define HQBoundary @"com.hq"//换行#define HQNewLine [@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]//将字符串编码#define HQEncode(string) [string dataUsingEncoding:NSUTF8StringEncoding]@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        NSString *urlString=@"http://120.25.226.186:32812/upload";        NSString *name=@"file";        NSString *fileName=@"flieName";        NSString *fileMIMEType=@"image/jpeg";        NSString *username=@"hq";        NSURLSession *session=[NSURLSession sharedSession];        NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:urlString]];        request.HTTPMethod=@"POST";        //设置请求头    [request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@",HQBoundary] forHTTPHeaderField:@"Content-Type"];        //设置请求体    NSMutableData *body=[NSMutableData data];            //分割线    [body appendData:HQEncode(@"--")];    [body appendData:HQEncode(HQBoundary)];    [body appendData:HQNewLine];            //文件参数名    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=%@; filename=%@",name,fileName]dataUsingEncoding:NSUTF8StringEncoding]];    [body appendData:HQNewLine];        //文件类型    [body appendData:[[NSString stringWithFormat:@"Content-Type:%@",fileMIMEType] dataUsingEncoding:NSUTF8StringEncoding]];    [body appendData:HQNewLine];            //文件数据    [body appendData:HQNewLine];    UIImage *image=[UIImage imageNamed:@"2"];    [body appendData:UIImagePNGRepresentation(image)];    [body appendData:HQNewLine];        //非文件参数        //分割线    [body appendData:HQEncode(@"--")];    [body appendData:HQEncode(HQBoundary)];    [body appendData:HQNewLine];            //参数名    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=%@",username] dataUsingEncoding:NSUTF8StringEncoding]];    [body appendData:HQNewLine];        [body appendData:HQNewLine];    [body appendData:HQEncode(@"hq")];    [body appendData:HQNewLine];            //结束标记    [body appendData:HQEncode(@"--")];    [body appendData:HQEncode(HQBoundary)];    [body appendData:HQEncode(@"--")];    [body appendData:HQNewLine];        NSURLSessionUploadTask *task=[session uploadTaskWithRequest:request fromData:body completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {                NSLog(@"%@",[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]);    }];        [task resume];}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}@end

0 0