ASIFormDataRequest с setPostValue и методом DELETE
Я пытаюсь использовать ASIFormDataRequest с setPostValues и методом DELETE, следующие строки кода
NSString *urlstring = [NSString stringWithFormat:@"%@%@",notificationsURL, typeId];
NSLog(@"Notification URL == %@",urlstring);
NSURL *urlR = [NSURL URLWithString:urlstring];
notificationAPNRequest = [ASIFormDataRequest requestWithURL:urlR];
notificationAPNRequest.timeOutSeconds = 30;
notificationAPNRequest.useSessionPersistence = NO;
[notificationAPNRequest setPostValue:deviceId forKey:@"deviceId"];
[notificationAPNRequest setPostValue:apnToken forKey:@"apnToken"];
if ([methodStr isEqualToString:@"OFF"]) {
[notificationAPNRequest setRequestMethod:@"DELETE"];
}
else if ([methodStr isEqualToString:@"ON"]) {
[notificationAPNRequest setRequestMethod:@"PUT"];
}
[notificationAPNRequest setDelegate:self];
[notificationAPNRequest setDidFinishSelector:@selector(notificationAPNSuccess:)];
[notificationAPNRequest setDidFailSelector:@selector(notificationAPNFailure:)];
[notificationAPNRequest startAsynchronous];
В методе успеха я получаю код 405NSLog(@"%d",[request responseStatusCode]);
В то время как, когда я нажимаю на почтового клиента, это работает. Пожалуйста, дайте мне знать, где я ошибся.
1 ответ
Решение
Когда вы используете метод DELETE с некоторыми параметрами записи, вам нужно вызвать функцию "buildPostBody" перед установкой метода HETP DELETE, как показано ниже
[messagesAPNRequest setPostValue:deviceId forKey:@"deviceId"]; [tificationAPNRequest setPostValue: apnToken forKey: @ "apnToken"];
[messagesAPNRequest buildPostBody]; /// Вызовите это перед установкой метода запроса
[tificationAPNRequest setRequestMethod:@"DELETE"];
Надеюсь, что это работает сейчас