System.Net.Http: ¿falta en el espacio de nombres? (usando .net 4.5)

TL; DR: Soy nuevo en este idioma y no tengo idea de lo que estoy haciendo

aquí está mi clase hasta ahora:

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

cuando hago csc filename.cs, aparece el siguiente error:

El tipo o el nombre del espacio de nombres ‘Http’ no existe en el espacio de nombres ‘System.Net’ (¿falta una referencia de ensamblado?)

HttpClient vive en el espacio de nombres System.Net.Http .

Necesitarás agregar:

 using System.Net.Http; 

Y asegúrese de hacer referencia a System.Net.Http.dll en .NET 4.5.


El código publicado no parece hacer nada con webClient . ¿Hay algún problema con el código que realmente está comstackndo usando HttpWebRequest ?


Actualizar

Para abrir el cuadro de diálogo Agregar referencia , haga clic derecho en su proyecto en el Explorador de soluciones y seleccione Agregar referencia …. Debería verse algo así como:

enter image description here

NuGet> Bibliotecas de cliente de la API web Microsoft ASP.NET

Cómo lo resolví

  1. Abra el proyecto (!) “Propiedades”, elija “Aplicación”, seleccione el marco de orientación “.NET Framework 4.5”
  2. Haga clic derecho en su proyecto -> Agregar referencia
  3. Asegúrese de que la opción “Ensambles” -> “Extensiones” “System.Net.Http” no esté marcada
  4. Vaya a “Ensambles” -> “Marco” y seleccione las opciones “System.Net.Http” y “System.Net.Http”
  5. Eso es todo!

En mi caso tuve al principio .Net 4.0 y “Ensambles” -> “Extensiones” opción “System.Net.Http” con la versión 2.0.0.0. Después de mis acciones “Ensambles” -> “Marco”, las opciones “System.Net.Http” y “System.Net.Http” tenían la misma versión 4.0.0.0.

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

Suponiendo que usa Visual Studio 10, puede descargar una instalación que incluye System.Net.Http, para Visual Studio 10 aquí: descargue MVC4 para VS10

Una vez que lo haya instalado, haga clic con el botón derecho en la carpeta Referencias en el Proyecto VS y luego seleccione Agregar referencia . Luego, selecciona la pestaña Examinar . Navegue a la ruta de instalación de ensamblados para la instalación de MVC4 (generalmente en Archivos de progtwig (x86) / Microsoft ASP.NET/ASP.NET MVC4 / ensamblados) y seleccione el ensamblado denominado ‘System.Net.Http.dll’. Ahora puede agregar su ‘using System.Net.Http’ en la parte superior de su código y comenzar a crear conexiones HttpClient.

Necesita tener una referencia al ensamblado System.Web.Http que tiene la clase HTTPClient , que intenta usar. Intente agregar la línea a continuación antes de su statement de clase

 using System.Web.Http; 

Si aún obtiene el error, intente hacer esto en Visual Studio

  1. Haga clic derecho en la carpeta de Referencias en su proyecto.
  2. Seleccione Agregar referencia.
  3. Seleccione la pestaña .NET (o seleccione el botón Examinar si no es un ensamblado de .NET Framework).
  4. Haga doble clic en el conjunto que contiene el espacio de nombres en el mensaje de error ( System.Web.Http.dll ).
  5. Presione el botón OK.

solo ve para agregar referencia y luego agrega

 system.net.http 

enter image description here

Para mí, fue obtener el paquete nuget Microsoft.Net.Http. ( https://blogs.msdn.microsoft.com/bclteam/p/httpclient/ )

Necesitarás using System.Net.Http en la parte superior.

HttpClient es nuevo en .net 4.5. Probablemente deberías estar usando HttpWebRequest .

Para resolver el problema,

1.go a su explorador de soluciones. 2. Haga clic con el botón derecho en el nombre del proyecto y elija agregar 3. Seleccione las referencias y permita que .Net framework 4.5 termine de cargarse 4. Desplácese hacia abajo y seleccione System.Net.Http y haga clic en Aceptar. Problema resuelto.

  use system.Net, system.Net.WebRequest 

tuve un problema similar o lo mismo y lo arreglé recientemente. sin embargo, también había agregado system.net.http antes, pero eso no lo resolvió.

Continué obteniendo el error incluso después de agregar el uso de System.Net.Http a las referencias en android y ya había instalado el paquete de Nugget microsoft.net.http.

Resultó que no agregué el System.Net.Http al proyecto iOS, cuando lo hice, resolvió el problema.