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客户端库
我是如何解决它的。
- 打开项目(!)“属性”,select“应用程序”,select目标框架“.Net Framework 4.5”
- 右键单击您的项目 – >添加引用
- 确保在“组件” – >“扩展”选项“System.Net.Http”未选中
- 进入“Assemblies” – >“Framework”,select“System.Net.Http”和“System.Net.Http”选项
- 这一切!
在我的情况下,我已经在.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
执行此操作
- 右键单击项目上的References文件夹。
- select添加引用。
- select“.NET”选项卡(如果不是.NET Framework程序集,请select“浏览”button)。
- 双击错误消息(
System.Web.Http.dll
)中包含命名空间的程序集。 - 按下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之前添加,但没有解决它。