API -интерфейс Rest концентратора уведомлений - указанное описание ресурса недопустимо
Итак, когда я пытаюсь выполнить регистрационный вызов для остальных API, я получаю сообщение об ошибке "Указанное описание ресурса недействительно".
Я предполагаю, что что-то не так с телом xml, но при тестировании с почтальоном это работает, поэтому я, вероятно, делаю что-то не так с loadXml или sendAsync??
Это код, который я использую.
client.BaseAddress = new Uri("https://myservicehub.servicebus.windows.net");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Add("x-ms-version", "2015-01");
client.DefaultRequestHeaders.Add("Authorization", sasToken);
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "/myservicehub/registrations/?api-version=2015-01");
XmlDocument doc = new XmlDocument();
doc.LoadXml("<entry xmlns='http://www.w3.org/2005/Atom'>" +
"<content type='application/xml'>"+
"<AppleRegistrationDescription xmlns:i='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'>"+
"<Tags>user</Tags>"+
"<DeviceToken>EEEEEE</DeviceToken>" +
"</AppleRegistrationDescription>"+
"</content>"+
"</entry>");
request.Content = new StringContent(doc.ToString(), Encoding.UTF8, "application/atom+xml");
HttpResponseMessage response = await client.SendAsync(request);
запрос в почтальоне
PostUrl:https://myservicehub.servicebus.windows.net/myservicehub/registrations/?api-version=2015-01
<?xml version='1.0' encoding='utf-8'?>
<entry xmlns='http://www.w3.org/2005/Atom'>
<content type='application/xml'>
<AppleRegistrationDescription xmlns:i='http://www.w3.org/2001/XMLSchema-instance' xmlns='http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'>
<Tags>user</Tags>
<DeviceToken>EEEEEE</DeviceToken>
</AppleRegistrationDescription>
</content>
</entry>
Так что я делаю не так?
Бест, Робин
1 ответ
Решил это благодаря Дмитрию П. Проблема была в этом ряду
request.Content = new StringContent(doc.ToString(), Encoding.UTF8, "application/atom+xml");
изменил это на:
request.Content = new StringContent(doc.OuterXml, Encoding.UTF8, "application/atom+xml");