이미지를 업로드하는 데 NSURLSessionUploadTask
을 사용하고 있습니다.NSURLSessionUploadTask originalRequest httpBody가 Null입니다.
업로드가 작동합니다. 이미지가 내 서버에 성공적으로 게시됩니다.
이 메서드는 새로운 NSURLSessionUploadTask
을 만듭니다. NSData
은 NSData
형식의 이미지이고 withPostRequest:
은 그 안에 들어있는 모든 쓰레기가 포함 된 NSMutableRequest
입니다.
- (void) uploadImage:(NSData*)data withPostRequest:(NSMutableURLRequest*)postRequest {
NSURLSessionUploadTask * uploadTask = [_session uploadTaskWithRequest:postRequest fromData:data completionHandler:^(NSData *data,NSURLResponse *response,NSError *error) {
//MAIN THREAD ACCESS UPDATE TO THE GUI OR DISPLAY ERRORS
dispatch_async(dispatch_get_main_queue(), ^{
//UPDATE THE GUI ON COMPLETION
});
}];
// START THE TASK
[uploadTask resume];
}
이 위임 메서드는 업로드와 함께 호출되어 진행 상황을 표시합니다. 이 메소드는 성공한 바이트가 전송 될 때 호출됩니다.
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didSendBodyData:(int64_t)bytesSent totalBytesSent:(int64_t)totalBytesSent totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend {
NSData * taskData = [task.originalRequest HTTPBody];
NSLog(@"Task Data: %@", taskData);
}
그러나 여러 개의 업로드가있는 경우 어떤 업로드가 올바른 진행 상태인지 확인할 수 있어야합니다. 전달한 이미지의 알려진 NSData
과 함께 작업 (원래의 NSData
)을 비교하여이 작업을 수행 할 수 있다고 생각합니다.
그러나, 위의 메서드를 호출 할 때, [task.originalRequest HTTPBody]
는 NULL입니다
사람이 알고 있나요?
[task.originalRequest URL]을 선택하지 않는 이유는 무엇입니까? – PnotNP
동시에 여러 번 업로드하는 경우 URL이 동일하지 않습니까? 게다가 각각에 대한 유일한 점은 NSData뿐입니다. 메서드 *는 NSData를 메서드에 전달해야하지만 그렇지 않습니다. –
좋아, 모든 업로드는 URL을 변경하지 않고 동일한 서버에 있습니다. 아마 그 질문에 언급해야합니다. – PnotNP