System.Net.Http:缺less命名空间? (使用.net 4.5)

TL; DR:我是这个语言的新手,不知道自己在做什么

这是我的课到目前为止:

using System; using System.Collections.Generic; using System.Net.Http; using System.Web; using System.Net; using System.IO; public class MyClass { private const string URL = "https://sub.domain.com/objects.json?api_key=123"; private const string data = @"{""object"":{""name"":""Title""}}"; public static void CreateObject() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = data.Length; StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII); requestWriter.Write(data); requestWriter.Close(); try { // get the response WebResponse webResponse = request.GetResponse(); Stream webStream = webResponse.GetResponseStream(); StreamReader responseReader = new StreamReader(webStream); string response = responseReader.ReadToEnd(); responseReader.Close(); } catch (WebException we) { string webExceptionMessage = we.Message; } catch (Exception ex) { // no need to do anything special here.... } } static void Main(string[] args) { MyClass.CreateObject(); } } 

当我做csc filename.cs时,我得到以下错误:

名称空间“System.Net”中不存在types或名称空间名称“Http”(是否缺less程序集引用?)

HttpClient位于System.Net.Http命名空间中。

你需要添加:

 using System.Net.Http; 

并确保您在.NET 4.5中引用System.Net.Http.dll


发布的代码似乎不会对webClient执行任何操作。 使用HttpWebRequest实际编译的代码是否有问题?


更新

要打开添加引用对话框,请在解决scheme资源pipe理器中右键单击您的项目,然后select添加引用…。 它应该看起来像这样:

在这里输入图像说明

NuGet> Microsoft ASP.NET Web API客户端库

我是如何解决它的。

  1. 打开项目(!)“属性”,select“应用程序”,select目标框架“.Net Framework 4.5”
  2. 右键单击您的项目 – >添加引用
  3. 确保在“组件” – >“扩展”选项“System.Net.Http”未选中
  4. 进入“Assemblies” – >“Framework”,select“System.Net.Http”和“System.Net.Http”选项
  5. 这一切!

在我的情况下,我已经在.Net 4.0和“Assemblies” – >“扩展”选项“System.Net.Http”与2.0.0.0版本的开头。 在我的操作“Assemblies” – >“Framework”选项后,“System.Net.Http”和“System.Net.Http”具有相同的4.0.0.0版本。

Visual Studio程序包pipe理器控制台>安装程序包Microsoft.AspNet.WebApi.Client

假设你使用Visual Studio 10,你可以在这里下载一个包含System.Net.Http的安装包,用于Visual Studio 10: 下载MVC4 for VS10

安装完成后,右键单击VS Project中的References文件夹,然后selectAdd Reference 。 然后,select浏览选项卡。 导航到MVC4安装(通常在Program Files(x86)/ Microsoft ASP.NET / ASP.NET MVC4 /程序集)中的程序安装path,并select名为“System.Net.Http.dll”的程序集。 现在,您可以在代码的顶部添加“using System.Net.Http”,并开始创buildHttpClient连接。

您需要具有HTTPClient类的System.Web.Http程序集的HTTPClient ,试图使用它。 尝试在类声明之前添加下面的行

 using System.Web.Http; 

如果仍然出现错误,请尝试在Visual Studio执行此操作

  1. 右键单击项目上的References文件夹。
  2. select添加引用。
  3. select“.NET”选项卡(如果不是.NET Framework程序集,请select“浏览”button)。
  4. 双击错误消息( System.Web.Http.dll )中包含命名空间的程序集。
  5. 按下OKbutton。

只需要添加引用然后添加

 system.net.http 

在这里输入图像说明

对我来说,它是得到nuget软件包Microsoft.Net.Http。( https://blogs.msdn.microsoft.com/bclteam/p/httpclient/

你需要在顶部using System.Net.Http

HttpClient是.net 4.5中的新function。 你应该使用HttpWebRequest 。

为了解决这个问题,

1.go到你的解决scheme资源pipe理器 2.右键单击项目名称并select添加3.select引用并允许.Net框架4.5完成加载4.向下滚动并selectSystem.Net.Http并单击确定。 问题解决了。

  use system.Net, system.Net.WebRequest 

我有类似的问题或相同的问题,最近修复。 但是我也有system.net.http之前添加,但没有解决它。