考虑以下代码:
if (request.Headers.Contains(headerName))
...
其中request
是System.Net.Http.HttpRequestMessage的实例。 headerName
相当武断;我们假设它来自用户输入。如果其值恰好为"Content-Type"
,则抛出异常:
System.InvalidOperationException:未使用的标题名称。确保请求标头与HttpRequestMessage一起使用,响应标头与HttpResponseMessage一起使用,内容标头与HttpContent对象一起使用。
我究竟如何“确定”这个? Headers
集合在内部知道允许哪些标题名称,request.Headers
的列表与request.Content.Headers
的列表不同。似乎我有2个选项来验证任意字符串:
这些方法似乎都不理想。有没有办法利用System.Net.Http
中已包含的知识来执行此验证?