31

System.Net.Http 名前空間にはStringContent クラスがあります。クラス StringContent を使用する目的は何ですか?

4

4 に答える 4

20

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変数に存在するコンテンツで応答します。

于 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 に答える