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.
Кто-нибудь нашел способ обойти это?