Вызов rest api в c#.
The following code works for basic authentication.
публичная асинхронная задача RunAsync(строковое имя, строковое значение)
{
using (var handler = new HttpClientHandler { UseDefaultCredentials = true })
using (var client = new HttpClient(handler))
{
var byteArray = кодировка.ASCII.GetBytes("имя пользователя:пароль");
клиент.DefaultRequestHeaders.Разрешение = новая система.Нет.Протоколу HTTP.Заголовки.AuthenticationHeaderValue("Базовый", "Преобразовать".ToBase64String(byteArray));
ВАР urlRestGet = HomeController.URL-адрес;
клиент.Базовый адрес = новый URI(urlRestGet + "?имя=" + имя + "&амп;значение=" + значение + "");
клиент.DefaultRequestHeaders.Принимать.Четкий();
**1. если(HomeController.сбой передачи.ToLower()=="xml"){
клиент.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
}**
остальное, если (HomeController.сбой передачи.ToLower() == "json")
{
клиент.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}
HttpResponseMessage response = ожидание клиента.GetAsync(urlRestGet + "?name=" + name + "&value=" + value + "");
если (ответ.IsSuccessStatusCode)
{
//Получить ответ
loginJsonString = ожидание ответа.Содержание.ReadAsStringAsync();
//Преобразование в xml
using (var stream = new MemoryStream(Encoding.ASCII.Метод getbytes(loginJsonString)))
{
var output = new XmlDictionaryReaderQuotas();
xmlResult = XDocument.Load(JsonReaderWriterFactory.CreateJsonReader(поток, вывод)).Метод toString();
}
}
}
}
Что я уже пробовал:
1) If the content type is application/xml am I correct to use line 1 part in the code.
2) How can I make this code more generic. (when the authentication type is different eg: tokenized or cookiebased how can I change this.)