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"];

Надеюсь, что это работает сейчас

Другие вопросы по тегам