iOS 上传文件formdata

直接上代码


NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

    [request setURL:[NSURLURLWithString:aUrl]];

    [request setHTTPMethod:@"POST"];



    NSString *boundary = @"---------------------------14737809831466499882746641449";

    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];

    [request addValue:contentTypeforHTTPHeaderField:@"Content-Type"];

    [request addValue:@"token" forHTTPHeaderField:@"Auth-Token"];

    NSMutableData *body = [NSMutableData data];

 [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"key\""]dataUsingEncoding:NSUTF8StringEncoding]];

//此处\r\n\r\n必须分开写,否则服务器端传输的name可能为空

[body appendData:[@"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[[NSString stringWithFormat:@"value"]dataUsingEncoding:NSUTF8StringEncoding]];

        [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];



      [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"file\"; filename=\"uploadfile\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    [body appendData:[NSDatadataWithData:upLoadParam.data]];

    [body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];

    // close form

    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    // setting the body of the post to the request

    [request setHTTPBody:body];

    NSURLSession *session = [NSURLSession sharedSession];

    NSURLSessionDataTask*task = [sessiondataTaskWithRequest:requestcompletionHandler:^(NSData*_Nullabledata,NSURLResponse*_Nullableresponse,NSError*_Nullableerror) {

        if(error ==nil) {

            NSLog(@"response:%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);



        }

        else

        }



    }];

    [task resume];

你可能感兴趣的:(iOS 上传文件formdata)