NSURLSession和Content-Type

时间:2015-11-23 20:00:18

标签: ios post https nsurlsession nsurlsessionuploadtask

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

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:但它没有用,所以我在网址中使用它。我知道它不是安全方面的最佳实践,但我已经非常绝望,因为我已经在这方面工作了10多个小时!当时只有一步!)
  3. Content-Typemultipart/form-data
  4. 这就是我需要提供的全部内容,但我却无法到达任何地方!

    有人可以帮忙吗?

    提前谢谢

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

    苹果公司没有努力将这部分连接序列化,这似乎很奇怪。无论如何。我非常感谢有人帮忙!

0 个答案:

没有答案