В пространстве имен System.Net.Http есть класс StringContent. Для каких целей следует использовать класс 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;
}