Потратив некоторое время, пытаясь исправить XML, в котором нет ничего неправильного (из-за ответов, которые предположили, что код ошибки 404 вызван неверным XML), я чувствую необходимость поделиться своими выводами.
Отправканеверный XML в уведомлении в первый раз не будет сразу идентифицирован в ответе (т. е. ответ будет 200 / Получен / Активен / Подключен, даже если уведомление не достигнет устройства).
ОднакоВ следующий раз, когда вы попытаетесь отправить уведомление на этот канал (имеет ли он действительный или недействительный XML), вы обнаружите, что канал больше не является действительным (т. е. ответ будет 404).
Канал становится недействительным из-за ранее отправленного недействительного сообщения.
Это означает, что если вы получаете эту ошибку, вы должны сначала получить новый канал уведомлений (запустив ваше приложение, которое должно инициировать подписку на службу MPN).).
Только тогда вы должны проверить правильность вашего XML и попытаться отправить уведомление новомуhannel.На этот раз вы снова получите статус 200, и единственный способ узнать, был ли XML действительным, - это проверить, поступило ли уведомление на устройство.