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

时间:2012-03-08 00:33:27

标签: c# api rest post

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'中不存在类型或命名空间名称'Http'(您是否缺少程序集引用?)

18 个答案:

答案 0 :(得分:95)

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

您需要添加:

using System.Net.Http;

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


发布的代码似乎与webClient无关。使用HttpWebRequest实际编译的代码是否有问题?


<强>更新

要打开添加引用对话框,请在解决方案资源管理器中右键单击您的项目,然后选择添加引用... 。它应该看起来像:

enter image description here

答案 1 :(得分:73)

NuGet&gt; Microsoft ASP.NET Web API客户端库

答案 2 :(得分:12)

我是如何解决它的。

  1. 打开项目(!)“属性”,选择“应用程序”,选择目标框架“.Net Framework 4.5”
  2. 右键点击您的项目 - &gt;添加参考
  3. 确保在“Assemblies”中 - &gt;未选中“扩展”选项“System.Net.Http”
  4. 转到“装配体” - &gt; “框架”并选择“System.Net.Http”和“System.Net.Http”选项
  5. 那就是全部!
  6. 在我的情况下,我在开始.Net 4.0和“Assemblies” - &gt;版本2.0.0.0的“扩展”选项“System.Net.Http”。在我的行动“装配”之后 - &gt; “Framework”选项“System.Net.Http”和“System.Net.Http”具有相同的4.0.0.0版本。

答案 3 :(得分:9)

Visual Studio包管理器控制台&gt;安装包Microsoft.AspNet.WebApi.Client

答案 4 :(得分:5)

假设您使用Visual Studio 10,可以在此处下载适用于Visual Studio 10的System.Net.Http安装:download MVC4 for VS10

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

答案 5 :(得分:3)

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

using System.Web.Http;

如果仍然出现错误,请尝试在Visual Studio

中执行此操作
  1. 右键单击项目的References文件夹。
  2. 选择添加参考。
  3. 选择.NET选项卡(如果它不是.NET Framework程序集,则选择“浏览”按钮)。
  4. 在错误消息(System.Web.Http.dll)中双击包含命名空间的程序集。
  5. 按OK按钮。

答案 6 :(得分:3)

只需添加引用然后添加

system.net.http

enter image description here

答案 7 :(得分:3)

对我来说,它正在获得nuget包Microsoft.Net.Http (https://blogs.msdn.microsoft.com/bclteam/p/httpclient/

答案 8 :(得分:2)

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

答案 9 :(得分:1)

使用Nuget软件包管理器安装Microsoft.AspNet.WebApi.Core。

之后:

/// Doing dot product with a layer of neurons and multiple inputs
///
/// Associated YT NNFS tutorial: [Part-3](*youtube link here*)
///
/// This uses the [ml_linalg][1] dependency. You can also use the [linalg][2] dependency
///
/// [1]: https://pub.dev/packages/ml_linalg
///
/// [2]: https://pub.dev/packages/linalg

或者如果您使用VB

using System.Web.Http;

答案 10 :(得分:1)

升级到.NET Framework 4.7.2后,我遇到了这个问题。我发现不再建议使用System.Net.Http的Nuget程序包。解决方法如下:

答案 11 :(得分:0)

要解决问题,

1.转到您的解决方案资源管理器。 2.右键单击项目名称,然后选择添加 3.选择引用并允许.Net framework 4.5完成加载 4.向下滚动并选择System.Net.Http,然后单击“确定”。 问题解决了。

答案 12 :(得分:0)

HttpClient是.net 4.5中的新功能。你可能应该使用HttpWebRequest

答案 13 :(得分:0)

                                      use system.Net, 
                                     system.Net.WebRequest

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

答案 14 :(得分:0)

即使将使用System.Net.Http添加到android中的引用后,我仍然会收到错误消息,并且我已经安装了Nugget软件包microsoft.net.http。

事实证明,我没有将System.Net.Http添加到iOS项目中,当我这样做时,它解决了问题。

答案 15 :(得分:0)

将“ Copy Local”属性设置为True,以供参考。展开引用,右键单击System.Net.Http,然后在属性窗口中将“复制本地”属性的值更改为True。我正在使用VS2019。

答案 16 :(得分:0)

确保在您的web.config中引用了它:

答案 17 :(得分:-1)

在Visual Studio中,您可以使用nuget加载程序包

Microsoft.AspNet.WebApi.WebHost