找不到如何使用HttpContent

use*_*156 165 .net c# asp.net dll

我正在尝试使用HttpContent:

HttpContent myContent = HttpContent.Create(SOME_JSON);
Run Code Online (Sandbox Code Playgroud)

...但我没有运气找到定义它的DLL.

首先,我尝试添加引用Microsoft.Http以及System.Net,但是列表中都没有.我也尝试添加一个引用,System.Net.HttpHttpContent该类不可用.

那么,谁能告诉我在哪里可以找到这门HttpContent课程?

You*_*jae 337

只是用......

var stringContent = new StringContent(jObject.ToString());
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Run Code Online (Sandbox Code Playgroud)

要么,

var stringContent = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Run Code Online (Sandbox Code Playgroud)

  • 使用HttpStringContent结束.我无法使用StringContent类,因为即使将其转换为IHttpContent对象,PostAsync(或我的情况下为PutAsync)也不接受StringContent. (3认同)
  • StringContent适用于PostAsync,但如果您想要或需要使用HttpContent,您可以这样做:HttpContent content = new StringContent(jsonString); (3认同)
  • 这应该是答案:/ (2认同)

Chr*_*s S 134

要获取6footunder的注释并将其转换为答案,这HttpContent是抽象的,因此您需要使用其中一个派生类:

在此输入图像描述

  • 谢谢,你在哪里得到这张照片? (4认同)
  • 看起来他使用了Visual Studio的"类图"功能(右键单击您的项目,添加项目,类图.然后您可以通过解决方案资源管理器并展开引用以获取您引用的库的图表.)https://docs.microsoft .COM/EN-US/VisualStudio中/ IDE /工作与 - 类图表级设计师 (4认同)

Fel*_*eza 58

对于JSON Post:

var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Run Code Online (Sandbox Code Playgroud)

非JSON:

var stringContent = new FormUrlEncodedContent(new[]
{
    new KeyValuePair<string, string>("field1", "value1"),
    new KeyValuePair<string, string>("field2", "value2"),
});
var response = await httpClient.PostAsync("http://www.sample.com/write", stringContent);
Run Code Online (Sandbox Code Playgroud)

https://blog.pedrofelix.org/2012/01/16/the-new-system-net-http-classes-message-content/

  • var 内容 = 等待响应.Content.ReadAsStringAsync(); (2认同)

Pan*_*vos 6

虽然HttpContent的最终版本和整个System.Net.Http命名空间将随.NET 4.5一起提供,但您可以通过添加NuGet 的Microsoft.Net.Http包来使用.NET 4版本