我正在尝试向已有的请求添加一个新的标头(该请求之前曾起作用),在该请求中,我想放置某种格式如下的User-Agent字符串:
AppName / AppVersion ( DeviceOS DeviceOSVersion )
它的代码是这样写的(请求是HttpRequestMessage
):
request.Headers.Add(UserAgentKey, $"{AppName}/{DependencyService.Get<IVersionProperties>().GetAppVersion()} ({Device.RuntimePlatform} {DependencyService.Get<IVersionProperties>().GetOSVersion()})");
但是很奇怪,它将字符串在withspace上分成两部分(在小数点和左括号之间),导致User-Agent标头有2个值,而不是1个统一整数。
所以我很好奇我在这里做错了什么,我认为这与空白有关,我可能需要以某种方式对其进行转义,但我不确定如何做。我希望有人可以帮助我解决这个问题。
谢谢。
答案 0 :(得分:0)
也许不是一个完整的解决方案,但至少是一种解决方法,为什么不首先编写字符串:var userAgent = $"{AppName}/{DependencyService.Get<IVersionProperties>().GetAppVersion()} ({Device.RuntimePlatform} {DependencyService.Get<IVersionProperties>().GetOSVersion()});"
然后取出换行符:userAgent = userAgent.Replace(Environment.NewLine, " ");
对于原因,我想说这些值之一包含换行符。虽然我真的不知道为什么或哪个。您是否分别检查了每个值?
答案 1 :(得分:0)
我使用了标头“ User-Agent”,该标头需要某种格式并附加了其他有趣的功能,例如,当我将其更改为“ User-Agentt”时,它就可以正常工作,因为我没有明确表示需要调用标题,我将只更改标题的名称。