为getAsync中的客户端添加标头(在使用块中)
问题描述:
尝试在此处向客户端变量添加标头属性。新的C#/窗体窗体。为getAsync中的客户端添加标头(在使用块中)
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();
}
}
正如在评论中提到尽量不要阻止(。结果)的异步代码。
而且HttpClient
应该是长期的生活。不断初始化和配置它们会对性能产生不利影响。
您应该如果您只是要阻止结果,则不要调用这些方法的异步版本。如果你想要同步行为,只需调用这些操作的同步版本即可。 – Servy
[我有博客文章](https://contrivedexample.com/2017/07/01/using-httpclient-as-it-was-intended-because-youre-not/)了解如何使用“HttpClient”。 – Crowcoder
@Servy在调用http客户端的异步方法时无法添加头文件? –