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");
Другие вопросы по тегам