覆盖 Exchange 请求的默认 User-Agent header
Overriding the default User-Agent header for Exchange request
我正在向 EWS 发送如下请求:
var service = new ExchangeService(exchangeVersion)
{
KeepAlive = true,
Url = new Uri("some autodiscovery url"),
Credentials = new NetworkCredential(username, password),
UserAgent = "myClient"
};
var subscription = service.SubscribeToPushNotifications(
new[] { inboxFolderFoldeID },
new Uri("some post back url"),
15,
null,
EventType.NewMail,
EventType.Created,
EventType.Deleted,
EventType.Modified,
EventType.Moved,
EventType.Copied);
但是,它会导致请求将 User-Agent header 作为 myClient (ExchangeServicesClient/15.00.0913.015)
,其中字符串的其余部分来自使用此默认值的 EWS 库.有没有办法删除 header 的默认部分并将其设为 myClient
?
编辑:我可以看到 EWS 库似乎只是在请求中传递的值前加上前缀:https://github.com/OfficeDev/ews-managed-api/blob/master/Core/ExchangeServiceBase.cs
您需要从 GitHub 重新编译库,因为现有变量的范围不允许您以任何其他方式更改它们。例如,您需要做的就是修改 UserAgent
public string UserAgent
{
get { return this.userAgent; }
set { this.userAgent = value + " (" + ExchangeService.defaultUserAgent + ")"; }
}
并删除前缀,然后当您在 ExchangeService class 上设置 属性 时,它将只是您的自定义值。
我正在向 EWS 发送如下请求:
var service = new ExchangeService(exchangeVersion)
{
KeepAlive = true,
Url = new Uri("some autodiscovery url"),
Credentials = new NetworkCredential(username, password),
UserAgent = "myClient"
};
var subscription = service.SubscribeToPushNotifications(
new[] { inboxFolderFoldeID },
new Uri("some post back url"),
15,
null,
EventType.NewMail,
EventType.Created,
EventType.Deleted,
EventType.Modified,
EventType.Moved,
EventType.Copied);
但是,它会导致请求将 User-Agent header 作为 myClient (ExchangeServicesClient/15.00.0913.015)
,其中字符串的其余部分来自使用此默认值的 EWS 库.有没有办法删除 header 的默认部分并将其设为 myClient
?
编辑:我可以看到 EWS 库似乎只是在请求中传递的值前加上前缀:https://github.com/OfficeDev/ews-managed-api/blob/master/Core/ExchangeServiceBase.cs
您需要从 GitHub 重新编译库,因为现有变量的范围不允许您以任何其他方式更改它们。例如,您需要做的就是修改 UserAgent
public string UserAgent
{
get { return this.userAgent; }
set { this.userAgent = value + " (" + ExchangeService.defaultUserAgent + ")"; }
}
并删除前缀,然后当您在 ExchangeService class 上设置 属性 时,它将只是您的自定义值。