大家好,感謝提前在如何一些NSURLConnection的代碼轉換爲較新的NSURLSession理解提供任何幫助。 我所試圖做的是做一個POST請求到服務器,併發送編碼爲重點的「照片」中的照片基地64。轉換NSURLConnection的到NSURLSessionUploadTask例如
下面我有一個工作示例寫在NSURLConnection的,我會想它轉換成NSURLSession。
正如我因爲在我的情況下,從我的理解,我應該使用數據任務的蘋果文檔上閱讀它的圖像,如果它像一個視頻,我應該使用上傳任務的大轉移。
關於上傳任務,我找到了下一個tutorial,但問題是,在我的情況下,我還設置了標題,而且我的內容類型應該是multipart/form-data。
NSURL *url = [NSURL URLWithString:myLink];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
[request setHTTPMethod:@"POST"];
[request addValue:parameter1 forHTTPHeaderField:header1];
[request addValue:parameter2 forHTTPHeaderField:header2];
[request addValue:parameter3 forHTTPHeaderField:header3];
[request addValue:parameter4 forHTTPHeaderField:header4];
[request addValue:parameter5 forHTTPHeaderField:header5];
[request setHTTPBody:[UIImageJPEGRepresentation(avatarImage, 1.0) base64EncodedDataWithOptions:NSDataBase64Encoding64CharacterLineLength]];
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response;
NSError *jsonError;
if(httpResp.statusCode == 200){
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingAllowFragments
error:&error];
if (!jsonError) {
[[NSUserDefaults standardUserDefaults] setObject:[dict objectForKey:@"photo_url"] forKey:@"avatarLink"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
}
else {
NSString *errorCode = [NSString stringWithFormat:@"An error has occured while uploading the avatar: %ld", (long)httpResp.statusCode];
[GeneralUse showAlertViewWithMessage:errorCode andTitle:@"Error"];
}
}];
,我會想提一提,我試着用雷Wenderlich教程構建一個工作的例子,但我得到關於我設置我的標題的方式
預先感謝您的任何提供幫助的錯誤!
1.你說的代碼示例將「發送編碼爲重點‘照片’中的照片基地64」。不,這個代碼示例沒有使用'photo'鍵。你想使用「照片」鍵嗎? 2.使用'NSURLSession'時,過程基本相同。構建「NSMutableURLRequest」併發布它。如果使用數據任務,請在上面的請求中指定正文。如果使用上傳任務,則不在請求中指定主體,而是將其作爲參數提供給'uploadTaskWithRequest'方法。 3.爲什麼不使用'multipart/form-data'請求(http://stackoverflow.com/questions/26162616) – Rob