ios 原生form-data 请求

2023-04-20  本文已影响0人  小锤子_

上篇文章记录的AFN 网络请求采用form-data格式,这篇记录原生网络请求


// 用请求的参数进行访问
- (void)validationPartPost:(NSDictionary *)dicData {
    
    NSString *POST_BOUNDS = @"yanzheng";
   
    NSURL *url = [NSURL URLWithString:@"http:"];
    NSMutableString *bodyContent = [NSMutableString string];
    for(NSString *key in dicData.allKeys){
        id value = [dicData objectForKey:key];
        [bodyContent appendFormat:@"--%@\r\n",POST_BOUNDS];
        [bodyContent appendFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key];
        [bodyContent appendFormat:@"%@\r\n",value];
    }
    [bodyContent appendFormat:@"--%@--\r\n",POST_BOUNDS];
    NSData *bodyData=[bodyContent dataUsingEncoding:NSUTF8StringEncoding];
    
    NSMutableURLRequest *request  = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];
    [request addValue:[NSString stringWithFormat:@"multipart/form-data;boundary=%@",POST_BOUNDS] forHTTPHeaderField:@"Content-Type"];
    
    
    // 请求头,有需求就填写
    
    [request setValue: @"" forHTTPHeaderField:@"timestamp"];
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody:bodyData];
    
    NSURLSession *session = [NSURLSession sharedSession];
    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
       
        NSDictionary *responseJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
        NSInteger status = [responseJSON[@"status"] integerValue];
        
        NSLog(@"%@",responseJSON);
        if (status == 200) {
 
        }
    }];
    [task resume];
}



上一篇 下一篇

猜你喜欢

热点阅读