我正在尝试将照片上传到Web服务,我使用以下代码:
NSData *imageData = UIImageJPEGRepresentation([UIImage imageNamed:imageToUpload], 0.5);
// 1
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.HTTPMaximumConnectionsPerHost = 1;
[config setHTTPAdditionalHeaders:@{@"Content-Type":@"multipart/form-data"}];
// 2
NSURLSession *upLoadSession = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];
// for now just create a random file name, dropbox will handle it if we overwrite a file and create a new name..
NSString *urlString =[NSString stringWithFormat:@"https://ABC.co.uk/photos?api_key=MYAPIKEY" ];
NSURL *webUrl = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:webUrl];
[request setHTTPMethod:@"POST"];
// 3
NSURLSessionUploadTask *uploadTask = [upLoadSession uploadTaskWithRequest:request fromData:imageData];
// 4
// uploadView.hidden = NO;
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
// 5
[uploadTask resume];
我收到一个错误500,我不知道该怎么办。
我尝试过实现AFNetworking,身体数据附加像This、This和This。然而,没有运气。
上面的代码来自Ray Wenderlich的网站:这里。
我所需要提供的服务器是:
- 文件(图像)
- API密钥(我尝试使用NSMutableURLRequest的
addValue:forHTTPHeaderField
:但它不起作用,所以我在URL中使用它。我知道这在安全方面不是最好的做法,但我已经为此工作了10多个小时,我变得非常绝望!一步一个脚印!) Content-Type
为multipart/form-data
这就是我所需要提供的,但我没有任何进展!
有人能帮忙吗?
提前感谢
更新1:所以我对URL结构做了一些修改,并在HTTPBody中添加了API键作为字典,现在我得到了错误403。
这似乎真的很奇怪,苹果公司没有做出任何努力来串行化这部分连接。无论如何我真的很感谢任何帮助我的人!
也尝试在请求中设置Content-Type
:
[request addValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];