2013-12-12 4 views
0

Я ищу простой пример использования параметров .net HttpClient для POST и добавления заголовков. Это очень просто в RestSharp, но до сих пор я не вижу четкого способа, как это сделать с HttpClient.Публикация с помощью C# httpclient с форматированными параметрами и заголовками

+0

Geez Все они повсюду. Вы уверены, что не смотрели? – cgatian

+0

Что-то вроде этого: http://stackoverflow.com/a/7929084/402022 – Theraot

+1

@cgatian Да, я посмотрел .. совсем немного, и, похоже, много путаницы. –

ответ

3

Если вы хотите изменить заголовки запросов для каждого запроса, то самый простой способ сделать это - установить свойства 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(); 
} 
+0

Спасибо за это .. Помогает с свойствами формы, но мне также нужно добавить пользовательские заголовки. –

+0

@billyjean См. Обновление. –

+0

спасибо! что такое декоратор? –

Смежные вопросы