NSURLSession을 사용하여 http DELETE 요청을하려고하는데 완전히 작동하지 않습니다. 서버가 리소스를 삭제하지만 NSURLSession 메서드 인 dataTaskWithRequest : completionHandler :는 지정된 시간이 초과 될 때까지 시간 초과 오류를 반환합니다.NSURLSession을 사용하여 http DELETE 요청을 만듭니다.
NSURLConnection은 사용되지 않으므로 사용하지 않을 예정입니다.
사용할 NSURLSession 메서드 중 내가 가장 많이 사용하는 http GET : dataTaskWithUrl : completionHandler 메서드와 유사하기 때문에 dataTaskWithRequest를 선택했습니다. "uploadTask"및 "downloadTask"로 시작하는 메서드는 DELETE에는 적합하지 않지만 downloadTaskWithRequest : completionHandler : 위의 dataTask 메서드와 동일한 방식으로 '작업 됨'. 서버가 자원을 삭제했지만 메소드가 시간 초과 오류를 반환했습니다.
+(void)httpDelete: (NSString*)url completionHandler: (void(^)(id, NSError*))complete
{
NSURLSessionConfiguration *urlSessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
NSMutableDictionary* dictionaryAdditionalHeaders = [[NSMutableDictionary alloc] init];
NSString* stringBearerToken = @"...";
NSString* stringApiKey = @"...";
[dictionaryAdditionalHeaders setObject:stringBearerToken forKey:@"Authorization"];
[dictionaryAdditionalHeaders setObject:stringApiKey forKey:@"x-api-key"];
[dictionaryAdditionalHeaders setObject:@"application/json" forKey:@"Content-Type"];
[dictionaryAdditionalHeaders setObject:@0 forKey:@"Content-Length"];
[urlSessionConfiguration setHTTPAdditionalHeaders: dictionaryAdditionalHeaders];
NSURLSession *urlSession = [NSURLSession sessionWithConfiguration: urlSessionConfiguration delegate:nil delegateQueue:[NSOperationQueue mainQueue]];
NSMutableURLRequest* mutableUrlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:5];
[mutableUrlRequest setHTTPMethod: @"DELETE"];
[[urlSession dataTaskWithRequest:mutableUrlRequest completionHandler: ^(NSData *data, NSURLResponse* response, NSError* error)
{
if(error != nil)
{
complete(response, error);
}
else
{
complete(response, nil);
}
}] resume];
}
우편 배달부, 즉시 204로 DELETE 호출이 반환을 사용 : 여기
는 코드입니다.삭제 요청을 위해 NSURLSession을 올바르게 사용하고 있습니까?
타임 아웃 오류는 백엔드 문제입니다. 응답을 얻지 않거나 실패 블록을 치지 않으면 문제가 발생한 곳이 없습니다! –