41

There is StringContent class in System.Net.Http namespace. What purposes should I use class StringContent for?

mtkachenko
  • 5,389
  • 9
  • 38
  • 68

4 Answers4

28

StringContent class creates a formatted text appropriate for the http server/client communication. After a client request, a server will respond with a HttpResponseMessageand that response will need a content, that can be created with the StringContent class.

Example:

 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;

In this example, the server will respond with the content present on the csv variable.

ΩmegaMan
  • 29,542
  • 12
  • 100
  • 122
Lombas
  • 1,000
  • 1
  • 8
  • 24
21

It provides HTTP content based on a string.

Example:

Adding the content on HTTPResponseMessage Object

response.Content = new StringContent("Place response text here");
Siva Charan
  • 17,940
  • 9
  • 60
  • 95
7

Whenever I want to send an object to web api server I use StringContent to add format to HTTP content, for example to add Customer object as json to server:

 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;

    }
Shojaeddin
  • 1,851
  • 1
  • 18
  • 16
2

Every response that is basically text encoded can be represented as StringContent.

Html reponse is text too (with proper content type set):

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

On the other side, if you download/upload file, that is binary content, so it cannot be represented by string.

Nenad
  • 24,809
  • 11
  • 75
  • 93