DataServiceContext.ExecuteAsync приводит к исключению в отношении заголовка User-Agent

Я создал приложение Xamarin.Forms и добавил подключенный сервис Odata. Теперь, когда я пытаюсь отправить запрос в бэкэнд, он завершится неудачей с исключением System.ArgumentException: заголовок "User-Agent" должен быть изменен с использованием соответствующего свойства или метода. Имя параметра: имя.

Что я пробовал:

1: Обработка DataServiceContext_BuildingRequest и установка там заголовка с использованием e.Headers ["User-Agent"] = "xyz";

2: Установка заголовка Content-Type, потому что я прочитал в другом потоке где-то, что это помогло (e.Headers.Add ("Content-Type", "application / json"))

3: Установка делегата DataServiceContext.Configurations.RequestPipeline.OnMessageCreating. Проблема в том, что исключение будет выдано, как только я попытаюсь создать новый экземпляр HttpWebRequestMessage, передавая полученные аргументы.

Делегат трубопровода:

Configurations.RequestPipeline.OnMessageCreating = (args) =>
{
    args.Headers["User-Agent"] = "xyz";                
    args.Headers.Add("Content-Type", "application/json");
    args.Headers["Accept"] = "application/json";
    var req = new HttpWebRequestMessage(args);
    req.HttpWebRequest.ContentType = "application/json";
    return req;
};

Я подозреваю, что в базовом коде что-то изменилось, что используется классом Odata HttpWebRequestMessage, который больше не позволяет напрямую устанавливать заголовок User-Agent.

Кто-нибудь нашел способ обойти это?

0 ответов

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