Пользовательская реализация httpclient - PullRequest
0 голосов
/ 08 июня 2018

У меня есть WebAPI, для которого требуется отправка пользовательского токена авторизации в заголовке запроса.

using (var client = new HttpClient()
{
     client.BaseAddress = new Uri("https://example.com");
     var request = new HttpRequestMessage(HttpMethod.Post, "/adfs/oauth2/authorize);
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "<token>");
    ...
    ...
    //code removed for brevity

}

Поскольку многие операции будут вызывать именно эти строки кода.Я планирую создать реализованный класс HttpClient, такой как ниже.У объекта этого класса должна быть вся инициализированная пользовательская реализация.Можно ли это сделать?

public class MyHttpClient : HttpClient
{
    //how do I make sure the object of MyHttpClient will implicitly set all the desired properties (headers etc)
}


using (var client = new MyHttpClient()
{
   //client should come with all the properties initialized
}

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете добавить свойства по умолчанию в конструктор производного класса.

Например

public class MyHttpClient : HttpClient {

    public MyHttpClient(): base() {
        BaseAddress = new Uri("https://example.com");
        DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "<token>");
        //...
        //...
        //code removed for brevity
    }
}
...