【发布时间】:2019-06-04 20:01:42
【问题描述】:
在我的程序中,我根据以下 JSON 模式生成自定义 HttpWebRequest:
{
"Endpoint": "String",
"Method": "String",
"Headers": [
{
"Name": "String",
"Value": "String"
}
]
}
下面的代码循环遍历每个Header并将其添加到HttpWebRequest
var request = (HttpWebRequest)WebRequest.Create(Endpoint);
foreach (var item in Headers)
{
request.Headers.Add(item.Name, item.Value);
}
这适用于大多数自定义标头,但我遇到了设置 ContentType 标头的问题。由于上述方法无法添加特定的标头,因此我设计了一种方法,使用Reflection 来设置request 的ContentType 属性。
public static void SetHeaderValue(this HttpWebRequest request, string headerName, string headerValue)
{
Type type = typeof(HttpWebRequest);
PropertyInfo prop = type.GetProperty(headerName);
if (prop != null)
{
prop.SetValue(request, headerValue);
}
}
我的问题是:使用Reflection 是解决此问题的最佳方法,还是解决此问题的安全方法?
【问题讨论】:
标签: c# .net reflection