Для каких целей следует использовать класс StringContent?

В пространстве имен System.Net.Http есть класс StringContent. Для каких целей следует использовать класс StringContent для?

Ответ 1

Он предоставляет HTTP-контент на основе строки.

Пример:

Добавление содержимого объекта HTTPResponseMessage

response.Content = new StringContent("Place response text here");

Ответ 2

Класс StringContent создает форматированный текст, подходящий для связи http-сервер/клиент. После запроса клиента сервер ответит HttpResponseMessage и для этого ответа потребуется контент, который можно создать с помощью класса StringContent.

Пример:

 string csv = "content here";
 var response = new HttpResponseMessage();
 response.Content = new StringContent(csv, Encoding.UTF8, "text/csv");
 response.Content.Headers.Add("Content-Disposition", 
                              "attachment; 
                              filename=yourname.csv");
 return response;

В этом примере сервер ответит содержимым переменной csv.

Ответ 3

Каждый ответ, который в основном кодируется в тексте, может быть представлен как StringContent.

Ответ на Html также является текстом (с правильным набором содержимого):

response.Content = new StringContent("<html><head>...</head><body>....</body></html>")

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

Ответ 4

Всякий раз, когда я хочу отправить объект на сервер веб-API, я использую StringContent, чтобы добавить формат к содержимому HTTP, например, чтобы добавить объект Customer как json на сервер:

 public void AddCustomer(Customer customer)
    {
        String apiUrl = "Web api Address";
        HttpClient _client= new HttpClient();

        string JsonCustomer = JsonConvert.SerializeObject(customer);
        StringContent content = new StringContent(JsonCustomer, Encoding.UTF8, "application/json");
        var response = _client.PostAsync(apiUrl, content).Result;

    }