Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在getAsync中为客户端添加头(在using块中)_C#_.net_Winforms_Using_Using Directives - Fatal编程技术网

C# 在getAsync中为客户端添加头(在using块中)

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(); } 我想在上面的代码中添加一个标题

正在尝试在此处向客户端变量添加标头属性。C#/窗口窗体的新增功能

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立即返回任务。