31

System.Net.Http 命名空间中有StringContent 类。我应该将 StringContent 类用于什么目的?

4

4 回答 4

20

StringContent 类创建适合于 http 服务器/客户端通信的格式化文本。在客户端请求之后,服务器将使用 a 进行响应,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变量中存在的内容进行响应。

于 2015-11-30T16:29:37.757 回答
19

它提供基于字符串的 HTTP 内容。

例子:

在 HTTPResponseMessage 对象上添加内容

response.Content = new StringContent("Place response text here");
于 2013-10-20T15:28:10.407 回答
5

每当我想将对象发送到 Web 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;

    }
于 2019-07-14T15:48:26.380 回答
2

每个基本上是文本编码的响应都可以表示为StringContent

Html 响应也是文本(设置了正确的内容类型):

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

另一方面,如果你下载/上传文件,那是二进制内容,所以它不能用字符串表示。

于 2013-10-20T15:41:00.753 回答