이 문제는 당면한 문제로 보일 수 있습니다. 그러나 이것은 중요한 (오히려 구형 인) 양의 종속성이 포함 된 코코아 더미의 끔찍한 UploadCare 사용을 피하려고합니다. 파일을 업로드하고 나중에 나중에 다운로드하십시오.cURL NSMutableURLRequest 형식의 사진 업로드 명령
나는 cURL 명령에서 '-F'옵션을 번역하는 데 어려움을 겪고 있습니다. HTTP multipart POST 데이터를 지정하는 것으로 알고 있지만 첨부 된 그림 파일로 NSMutableData로 변환하는 것은 어렵습니다. 403 상태 코드가 계속 수신됩니다.
컬 명령은 다음과 같습니다
curl -F "UPLOADCARE_PUB_KEY=e84a031b3da1g560d56d" \
-F "UPLOADCARE_STORE=1" \
-F "[email protected]" https://upload.uploadcare.com/base/
나의 현재의 시도는 다음과 같습니다
NSMutableData *body = [NSMutableData data];
NSData *imageData = UIImageJPEGRepresentation(image, 0.6);
if (imageData) {
[body appendData:[@"UPLOADCARE_PUB_KEY=e84a031b3da1g560d56d" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"UPLOADCARE_STORE=1" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"file="] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:imageData];
}
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:self delegateQueue:nil];
NSURL *url = [NSURL URLWithString:baseUrl];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";
request.HTTPBody = imageData;
NSURLSessionDataTask *uploadTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"%@",response);
}];
[uploadTask resume];
은 무엇 나는 NSMutableData으로 잘못하고 있는가?
두 번째 질문은 다음과 같습니다. 객관적인 -C lib 컬 래퍼를 사용하는 것이 가치가 있습니까?
당신은 (무효) URLSession을 구현 : (NSURLSession *) 세션 didReceiveChallenge : 방법은? 403과 관련 될 수 있습니다. – Xcoder
에서와 같이 위임 메서드를 호출해서는 안됩니다. 내가 실행 한 유일한 코드는 여기에 게시 한 것입니다 (대리자 호출에서 참조 할 필요가 없다고 생각합니다). 그러나 대리자 메서드로 무엇을해야하는지 잘 모르겠습니다. 내가 지금 방금 추가했을 때 아무 것도하지 않는 것 같다. – Rambatino