上传请求

来源:互联网 发布:mysql数据库备份方案 编辑:程序博客网 时间:2024/06/01 09:28

在ios的请求中,最复杂的莫过于上传请求,最麻烦的就是上传有固定的格式,不这样写还不行,硬性规定,下面就是上传代码

#define XMGBoundary @"520it"#define XMGEncode(string) [string dataUsingEncoding:NSUTF8StringEncoding]#define XMGNewLine [@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]- (void)viewDidLoad {    [super viewDidLoad];    // 创建请求    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/upload"];    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];    request.HTTPMethod = @"POST";    // 设置请求头(告诉告诉服务器,这是一个文件上传的请求)    [request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", XMGBoundary] forHTTPHeaderField:@"Content-Type"];    // 设置请求体    NSMutableData *body = [NSMutableData data];    // 文件参数    /*     --分割线\r\n     Content-Disposition: form-data; name="参数名"; filename="文件名"\r\n     Content-Type: 文件的MIMEType\r\n     \r\n     文件数据     \r\n     */    // 分割线    [body appendData:XMGEncode(@"--")];    [body appendData:XMGEncode(XMGBoundary)];    [body appendData:XMGNewLine];    // 文件参数名    [body appendData:XMGEncode([NSString stringWithFormat:@"Content-Disposition: form-data; name=\"file\"; filename=\"test.png\""])];    [body appendData:XMGNewLine];    // 文件的类型    [body appendData:XMGEncode([NSString stringWithFormat:@"Content-Type: image/png"])];    [body appendData:XMGNewLine];    // 文件数据    [body appendData:XMGNewLine];//    UIImageJPEGRepresentation(<#UIImage *image#>, <#CGFloat compressionQuality#>)    UIImage *image = [UIImage imageNamed:@"placeholder"];    [body appendData:UIImagePNGRepresentation(image)];//    [body appendData:[NSData dataWithContentsOfFile:@"/Users/xiaomage/Desktop/test.png"]];    [body appendData:XMGNewLine];    // 非文件参数    /*     --分割线\r\n     Content-Disposition: form-data; name="参数名"\r\n     \r\n     参数值     \r\n     */    // 分割线    [body appendData:XMGEncode(@"--")];    [body appendData:XMGEncode(XMGBoundary)];    [body appendData:XMGNewLine];    // 参数名    [body appendData:XMGEncode([NSString stringWithFormat:@"Content-Disposition: form-data; name=\"username\""])];    [body appendData:XMGNewLine];    // 参数值    [body appendData:XMGNewLine];    [body appendData:XMGEncode(@"jack")];    [body appendData:XMGNewLine];    // 结束标记    /*     --分割线--\r\n     */    [body appendData:XMGEncode(@"--")];    [body appendData:XMGEncode(XMGBoundary)];    [body appendData:XMGEncode(@"--")];    [body appendData:XMGNewLine];    request.HTTPBody = body;    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {        NSLog(@"%@", [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil]);    }];}
0 0
原创粉丝点击