sim*_*era 11 .net-core asp.net-core
我正在开发简单的Http客户端以使用Asp.Net核心Web API.我想通过HttpHeaderCollection将几个http标头值传递给Web API.在.Net框架的先前版本中,允许将标头值添加到HttpHeaderCollection中,如下所示
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();
Run Code Online (Sandbox Code Playgroud)
但在.Net Core中,无法向request.Headers集合添加标头.我们也不能通过定义新的WebHeaderCollection来添加标头
WebHeaderCollection aPIHeaderValues = new WebHeaderCollection();
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以在.Net Core中执行此操作
小智 11
问题是关于HttpWebRequest,不同于HttpClient.
使用HttpWebRequest,您只需分配到您想要的标题:
request.Headers["HeaderToken"] = "HeaderValue";
Run Code Online (Sandbox Code Playgroud)
如果不存在,.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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12361 次 |
| 最近记录: |