-(IBAction)httpGetData:(id)sender{
NSURLSessionConfiguration *config1 = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSessionConfiguration *config2 = [NSURLSessionConfiguration ephemeralSessionConfiguration];
NSURLSessionConfiguration *config3 = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"id"];
NSURLSession *session1 = [NSURLSession sharedSession];
NSURLSession *session2 = [NSURLSession sessionWithConfiguration:config1];
NSURLSession *session3 = [NSURLSession sessionWithConfiguration:config1 delegate:self delegateQueue:nil];
NSString *str = @"http://localhost:8080/JuRan_20151204/admin/business_upload.do";
NSURL *url = [NSURL URLWithString:str];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
//设置Header参数
[request setValue:@"testHeader" forHTTPHeaderField:@"testHeader"];
//此处发现如果Method是GET,body中放入参数提交,服务端会收不到。
//设置Body值方法一,这种方法比较简单,为常用方法,不过只能上送参数
// [request setHTTPMethod:@"POST"];
// NSString *bodyStr = @"access_token=xxxxx&status=微博内容";
// NSData *bodyData = [bodyStr dataUsingEncoding:NSUTF8StringEncoding];
// [request setHTTPBody:bodyData];
//设置Body值方法二,这种方法比较原始,不常用,不过可以用来上传参数和文件
NSString *BOUNDARY = @"0xKhTmLbOuNdArY";
[request setValue:[@"multipart/form-data; boundary=" stringByAppendingString:BOUNDARY] forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"POST"];
NSMutableData *body = [NSMutableData data];
//多参数上送
NSString *param1 = [NSString stringWithFormat:@"--%@\r\nContent-Disposition: form-data; name=\"%@\"\r\n\r\n%@\r\n",BOUNDARY,@"name1",@"value1",nil];
[body appendData:[param1 dataUsingEncoding:NSUTF8StringEncoding]];
NSString *param2 = [NSString stringWithFormat:@"--%@\r\nContent-Disposition: form-data; name=\"%@\"\r\n\r\n%@\r\n",BOUNDARY,@"name2",@"value2",nil];
[body appendData:[param2 dataUsingEncoding:NSUTF8StringEncoding]];
//多文件上传
UIImage *image1 = [UIImage imageNamed:@"image.png"];
NSData *data1 = UIImageJPEGRepresentation(image1, 1.0);
NSString *file1 = [NSString stringWithFormat:@"--%@\r\nContent-Disposition: form-data; name=\"%@\";filename=\"%@\"\r\nContent-Type: application/octet-stream\r\n\r\n",BOUNDARY,@"logoFile",@"image.png",nil];
[body appendData:[file1 dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:data1];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
UIImage *image2 = [UIImage imageNamed:@"image.png"];
NSData *data2 = UIImageJPEGRepresentation(image2, 1.0);
NSString *file2 = [NSString stringWithFormat:@"--%@\r\nContent-Disposition: form-data; name=\"%@\";filename=\"%@\"\r\nContent-Type: application/octet-stream\r\n\r\n",BOUNDARY,@"imageFile",@"image.png",nil];
[body appendData:[file2 dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:data2];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
//body结束分割线
NSString *endString = [NSString stringWithFormat:@"--%@--",BOUNDARY];
[body appendData:[endString dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSURLSessionDataTask *task1 = [session3 dataTaskWithRequest:request];
NSURLSessionDataTask *task2 = [session1 dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
NSInteger responseStatusCode = [httpResponse statusCode];
NSLog(@"responseStatusCode : %ld", responseStatusCode);
[_webView loadData:data MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:url];
}];
[task2 resume];
NSURLSessionDataTask *task3 = [session3 dataTaskWithURL:url];
NSURLSessionDataTask *task4 = [session2 dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
NSLog(@"task4 %@",response);
NSDictionary *content = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];//转换数据格式
NSLog(@"task4 %@",content);
}];
}