0

我正在尝试将照片上传到网络服务,并且我正在使用以下代码:

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,附加身体数据,如ThisThisThis。然而,没有运气。

上面的代码来自 Ray Wenderlich 的网站:Here

我需要提供的服务器是这样的:

  1. 文件(图片)
  2. API 密钥(我尝试使用 NSMutableURLRequest's addValue:forHTTPHeaderField: 但它不起作用,所以我在 URL 中使用它。我知道这不是安全方面的最佳做法,但我越来越绝望了工作了 10 多个小时!一步一步!)
  3. Content-Type成为_multipart/form-data

这就是我需要提供的全部内容,但我却一无所获!

有人可以帮忙吗?

先感谢您

更新 1:所以我对 URL 结构进行了一些更改,并将 API 密钥作为字典添加到 HTTPBody 中,现在我收到错误 403。

苹果没有做出任何努力来序列化这部分连接,这似乎真的很奇怪。反正。我真的很感谢任何人的帮助!

4

1 回答 1

0

尝试Content-Type在请求中设置:

[request addValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];
于 2015-11-23T20:23:37.677 回答