ios - 当我调用异步发布请求时如何发送正文中的值
问题描述
我正在尝试执行一项我完全不知道的任务,即在目标 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]);
}
}];
解决方案
你应该使用NSMutableURLRequest
NSMutableURLRequest 是 NSURLRequest 的子类,它允许您更改请求的属性。
NSMutableURLRequest *mutableRequest = [request mutableCopy];
[mutableRequest addValue:@"65" forHTTPHeaderField:@"projectId"];
...
request = [mutableRequest copy];
推荐阅读
- vba - 带有查找代码的 VBA 错误 13
- angular - Ngxs - 承诺行动链?
- android - 打开键盘会提升我的整体视图 React-Native
- javascript - 阴影不适用于 THREE.js
- jquery - jquery - 获取包含 wrap 元素的 html 内容
- php - 将变量插入 Laravel CSV 文件导入数组
- node.js - React + Socket.io 没有连接到我在 Heroku 上的服务器应用程序
- c# - base.OnStartup(e) 有什么作用?
- reactjs - 元素类型无效:需要 React 的字符串(用于内置组件)
- c# - 使用 MQL5 调用另一种语言