追加一个字典到WebHeaderCollection
本文关键字:string WebHeaderCollection 字典 一个 追加 | 更新日期: 2023-09-27 18:11:18
如何将IDictionary<string,string>
附加到System.Net.WebHeaderCollection
上
或者甚至附加2个System.Net.WebHeaderCollection
对象?我试图将许多自定义头添加到我的HttpWebRequest
并覆盖名为request.Headers
的源字典中的键值对。
我当前的代码有一个类型转换问题:
错误1实例参数:不能从System.Net转换。WebHeaderCollection'到'System.Collections.Generic.IEnumerable>'
// IDictionary <string, string> customHeaders; // populated earlier in the code
var request = (HttpWebRequest)WebRequest.Create(requestUrl);
// Compiler error below
request.Headers.Concat(customHeaders).GroupBy(d => d.Key)
.ToDictionary(d => d.Key, d => d.First().Value);
试试这个:
var request = (HttpWebRequest)WebRequest.Create(requestUrl);
foreach(var customHeader in customHeaders)
request.Headers.Add(customHeader.Key, customHeader.Value);
Concat
不是原地操作,它只返回连接的集合。所以即使它编译了,它实际上也不会工作。
无论如何,要使用泛型IEnumerable遍历头文件,您需要这样做:
request.Headers.Cast<HttpRequestHeader>()
这应该清楚地说明为什么不能将Dictionary与IEnumerable