bil*_*ean 1 c# post async-await dotnet-httpclient
我正在寻找一个简单的示例,使用.net HttpClient POST参数并添加标题。这在RestSharp中非常容易,但是到目前为止,我还看不到如何使用HttpClient执行此操作的明确方法。
如果要为每个请求修改请求标头,那么最简单的方法是设置DefaultRequestHeaders属性。但是,如果您确实只想更改特定请求的请求标头,则需要使用该SendAsync方法并将其传递给HttpRequestMessage。
[Fact]
public async Task Post_a_form_and_change_some_headers()
{
var client = new HttpClient() { BaseAddress = _BaseAddress };
var values = new Dictionary<string, string>()
{
{"Id", "6"},
{"Name", "Skis"},
{"Price", "100"},
{"Category", "Sports"}
};
var content = new FormUrlEncodedContent(values);
var request = new HttpRequestMessage()
{
RequestUri = new Uri("devnull",UriKind.Relative),
Method = HttpMethod.Post,
Content = content
};
request.Headers.ExpectContinue = false;
request.Headers.Add("custom-header","a header value");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
}
Run Code Online (Sandbox Code Playgroud)