如何将标头值添加到.Net核心中的HttpWebRequest
问题描述:
我正在开发简单的Http客户端以使用Asp.Net Core Web API。我想通过HttpHeaderCollection将少量的http头值传递给Web API。 .NET Framework中的早期版本中允许标头值添加到HttpHeaderCollection如下如何将标头值添加到.Net核心中的HttpWebRequest
WebHeaderCollection aPIHeaderValues = new WebHeaderCollection();
aPIHeaderValues .Add("UserName","somevalue");
aPIHeaderValues .Add("TokenValue", "somevalue");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Headers.add(aPIHeaderValues);
HttpWebResponse response = (HttpWebResponse)_request.GetResponse();
但对.NET核心是没有办法添加头request.Headers集合。除了我们无法通过定义新WebHeaderCollection
WebHeaderCollection aPIHeaderValues = new WebHeaderCollection();
添加页眉是否有任何替代方式对.NET核心要做到这一点
答
下面是一个例子:
SampleClass sampleClass= null;
using (HttpClient client = new HttpClient()){
client.DefaultRequestHeaders.Add("Authorization", "TOKEN");
var data = await client.GetAsync("MY_API_URL");
var jsonResponse = await data.Content.ReadAsStringAsync();
if (jsonResponse != null)
sampleClass= JsonConvert.DeserializeObject<SampleClass>(jsonResponse);
return sampleClass;
}
答
的问题是关于HttpWebRequest
,与HttpClient
不同。
使用HttpWebRequest
,你只要将你想要这样的标题:
request.Headers["HeaderToken"] = "HeaderValue";
.NET核心将创建头,如果它不存在。
请不要添加标语到您的帖子。这些地方是在你的用户档案中。 – DavidPostill