C# 在getAsync中为客户端添加头(在using块中)
正在尝试在此处向客户端变量添加标头属性。C#/窗口窗体的新增功能C# 在getAsync中为客户端添加头(在using块中),c#,.net,winforms,using,using-directives,C#,.net,Winforms,Using,Using Directives,正在尝试在此处向客户端变量添加标头属性。C#/窗口窗体的新增功能 using (var client = new HttpClient()) using (var response = client.GetAsync(page).Result) using (var content = response.Content) { response = content.readAsStringAsync().Result(); } 我想在上面的代码中添加一个标题
using (var client = new HttpClient())
using (var response = client.GetAsync(page).Result)
using (var content = response.Content) {
response = content.readAsStringAsync().Result();
}
我想在上面的代码中添加一个标题
client.DefaultRequestHeaders.Add("myHeader", "value");
不知道放在哪里。尝试使用(var client=new HttpClient(){client.addheader('header','value')}添加。但这似乎使客户端在下一行代码中超出范围。如果正确布局代码,您将看到变量的范围
using (var client = new HttpClient()) {
client.DefaultRequestHeaders.Add("myHeader", "value");
using (var response = await client.GetAsync(page)) {
var result = await response.Content.ReadAsStringAsync();
}
}
如注释中所述,尽量不要在异步代码上阻塞(.Result)
另外,
HttpClient
应该是长寿命的。不断初始化和处理它们可能会对性能产生不利影响。如果只是要阻止结果,不应该调用这些方法的异步版本。如果想要同步行为,只需调用这些操作的同步版本即可n关于如何使用HttpClient
@Servy在调用http客户端的异步方法时,我无法添加头吗?@RkRBairi当然可以,我从来没有说过别的。我只是说,如果要同步执行工作,请调用同步方法。如果要异步执行工作,请不要在e立即返回任务。