System.Net.Http: missing from namespace? (using .net 4.5)

C#RestPost

C# Problem Overview


TL; DR: I'm new to this language and have no idea what I'm doing

here is my class so far:

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();
        }
}

when I do csc filename.cs, I get the following error:

> The type or namespace name 'Http' does not exist in the namespace 'System.Net' (are you missing an assembly reference?)

C# Solutions


Solution 1 - C#

HttpClient lives in the System.Net.Http namespace.

You'll need to add:

using System.Net.Http;

And make sure you are referencing System.Net.Http.dll in .NET 4.5.


The code posted doesn't appear to do anything with webClient. Is there something wrong with the code that is actually compiling using HttpWebRequest?


Update

To open the Add Reference dialog right-click on your project in Solution Explorer and select Add Reference.... It should look something like:

enter image description here

Solution 2 - C#

NuGet > Microsoft.AspNet.WebApi.Client package

Solution 3 - C#

How I solved it.

  1. Open project (!) "Properties", choose "Application", select targeting framework ".Net Framework 4.5"
  2. Right click on your project -> Add reference
  3. Make sure that in "Assemblies" -> "Extensions" option "System.Net.Http" is unchecked
  4. Go to "Assemblies" -> "Framework" and select "System.Net.Http" and "System.Net.Http" options
  5. That`s all!

In my case i had at the beginning .Net 4.0 and "Assemblies" -> "Extensions" option "System.Net.Http" with version 2.0.0.0. After my actions "Assemblies" -> "Framework" options "System.Net.Http" and "System.Net.Http" had the same 4.0.0.0 version.

Solution 4 - C#

Visual Studio Package Manager Console > Install-Package Microsoft.AspNet.WebApi.Client

Solution 5 - C#

just go to add reference then add

system.net.http

enter image description here

Solution 6 - C#

Assuming that your using Visual Studio 10, you can download an install that includes System.Net.Http, for Visual Studio 10 here: download MVC4 for VS10

Once you've installed it, right click on the References folder in the VS Project and then select Add Reference. Then, select the Browse tab. Navigate to the assemblies install path for the MVC4 install (usually in Program Files(x86)/Microsoft ASP.NET/ASP.NET MVC4/assemblies) and select the assembly named 'System.Net.Http.dll'. Now you can add your 'using System.Net.Http' at the top of your code and begin creating HttpClient connections.

Solution 7 - C#

I had this issue after upgrading to .NET Framework 4.7.2. I found out that Nuget package for System.Net.Http is no longer recommended. Here are workarounds:

Solution 8 - C#

You need to have a Reference to the System.Web.Http assembly which has the HTTPClient class, your trying to use. Try adding the below line before your class declaration

using System.Web.Http;

If you still get the Error, try doing this in Visual Studio

  1. Right click on the References folder on your project.
  2. Select Add Reference.
  3. Select the .NET tab (or select the Browse button if it is not a .NET Framework assembly).
  4. Double-click the assembly containing the namespace in the error message (System.Web.Http.dll).
  5. Press the OK button.

Solution 9 - C#

For me, it was getting the nuget package Microsoft.Net.Http .(https://blogs.msdn.microsoft.com/bclteam/p/httpclient/)

Solution 10 - C#

You'll need a using System.Net.Http at the top.

Solution 11 - C#

With the Nuget Package Manager install Microsoft.AspNet.WebApi.Core.

After this:

using System.Web.Http;

or if you use VB

imports System.Web.Http

Solution 12 - C#

Solution 13 - C#

To solve the problem :

  1. Go to your solution explorer.
  2. Right click on the project name and choose add
  3. Select references and allow the .Net framework 4.5 to finish loading
  4. Scroll down and select System.Net.Http and click ok.

Problem solved.

Solution 14 - C#

Making the "Copy Local" property True for the reference did it for me. Expand References, right-click on System.Net.Http and change the value of Copy Local property to True in the properties window. I'm using VS2019.

Solution 15 - C#

In Visual Studio you can use nuget to load the package

Microsoft.AspNet.WebApi.WebHost

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNullVoxPopuliView Question on Stackoverflow
Solution 1 - C#M.BabcockView Answer on Stackoverflow
Solution 2 - C#user1662812View Answer on Stackoverflow
Solution 3 - C#LagiNatoRRRView Answer on Stackoverflow
Solution 4 - C#lance-pView Answer on Stackoverflow
Solution 5 - C#Hussein AlrubayeView Answer on Stackoverflow
Solution 6 - C#UssabinView Answer on Stackoverflow
Solution 7 - C#NedView Answer on Stackoverflow
Solution 8 - C#AkhilView Answer on Stackoverflow
Solution 9 - C#ElferoneView Answer on Stackoverflow
Solution 10 - C#Keith NicholasView Answer on Stackoverflow
Solution 11 - C#enragedView Answer on Stackoverflow
Solution 12 - C#KibbeeView Answer on Stackoverflow
Solution 13 - C#boakye_wozniacView Answer on Stackoverflow
Solution 14 - C#GoodmedalistView Answer on Stackoverflow
Solution 15 - C#Cetin SahinView Answer on Stackoverflow