首页 > 解决方案 > 当我调用异步发布请求时如何发送正文中的值

问题描述

我正在尝试执行一项我完全不知道的任务,即在目标 c 中将视频上传到服务器。我是初学者,我使用的是 swift,但现在我的要求是目标 c。

在这里,我必须使用多部分表单数据向具有三个值的服务器发送异步请求。这是需要在正文中发送的数据:

body->form-data
projectId : String
sessionId : String
file : file

它在这条线上崩溃了

" [urlRequest addValue:@"65" forHTTPHeaderField:@"projectId"];"

谁能帮我做到这一点。

提前致谢。

NSString *str = [NSString stringWithFormat:@"http://abcdefghijkl.mnopqrst.com:8965/upload"];
NSURL *url = [NSURL URLWithString:str];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[urlRequest addValue:@"65" forHTTPHeaderField:@"projectId"];
[urlRequest addValue:@"43" forHTTPHeaderField:@"sessionId"];
[urlRequest addValue:@"" forHTTPHeaderField:@"file"];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
    if (error) {
        NSLog(@"Error,%@", [error localizedDescription]);
    } else {
        NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]);
    }
}];

标签: iosnsurlconnectionobjective-c-2.0

解决方案


你应该使用NSMutableURLRequest

NSMutableURLRequest 是 NSURLRequest 的子类,它允许您更改请求的属性。

NSMutableURLRequest *mutableRequest = [request mutableCopy];
[mutableRequest addValue:@"65" forHTTPHeaderField:@"projectId"];
...

request = [mutableRequest copy];

推荐阅读