iOS通过HTTP POST上传文件

来源:互联网 发布:工程造价在国企知乎 编辑:程序博客网 时间:2024/04/29 02:48

iOS通过HTTP POST上传文件,代码如下:

 

Java代码  收藏代码
  1. //创建Request对象  
  2. NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];  
  3.     [request setURL:[NSURL URLWithString:urlStr]];  
  4.     [request setHTTPMethod:@"POST"];  
  5.     NSMutableData *body = [NSMutableData data];  
  6.   
  7. //设置表单项分隔符  
  8.     NSString *boundary = @"---------------------------14737809831466499882746641449";  
  9.   
  10. //设置内容类型  
  11.     NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];  
  12.     [request addValue:contentType forHTTPHeaderField: @"Content-Type"];  
  13.   
  14.     //写入图片的内容  
  15.     [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];  
  16.     [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"PIC_DATA1.jpg\"\r\n",@"PIC_DATA1"] dataUsingEncoding:NSUTF8StringEncoding]];  
  17.     [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];  
  18.     [body appendData:[infoDic objectForKey:@"PIC_DATA1"]];  
  19.     [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];  
  20.       
  21.     //写入INFO的内容  
  22.     [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];  
  23.     [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",@"PIC_INFO"] dataUsingEncoding:NSUTF8StringEncoding]];  
  24.     [body appendData:jsonData];  
  25.     [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];  
  26.   
  27.      //写入尾部内容  
  28.     [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];  
  29.   
  30.     [request setHTTPBody:body];  
  31.       
  32.     NSHTTPURLResponse *urlResponese = nil;  
  33.     NSError *error = [[NSError alloc]init];  
  34.     NSData* resultData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponese error:&error];  
  35.       
  36.     NSDictionary *responseDic = [NSJSONSerialization JSONObjectWithData:resultData options:NSJSONReadingMutableLeaves error:nil];  
0 0
原创粉丝点击