我已经创建了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实例并传入它接收到的args,就会抛出异常。
管道代表:
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标头。
有人找到解决这个问题的方法吗?