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 nombre del espacio de nombres 'Http' no existe en el espacio de nombres 'System.Net' (¿le falta una referencia de ensamblado?)

webClientcampo). Además, nunca lo usas para nada. Probablemente podrías simplemente eliminarlo.Respuestas:
HttpClientvive en elSystem.Net.Httpespacio de nombres.Deberá agregar:
Y asegúrese de hacer referencia
System.Net.Http.dllen .NET 4.5.El código publicado no parece hacer nada con
webClient. ¿Hay algún problema con el código que realmente se está compilandoHttpWebRequest?Actualizar
Para abrir el Agregar referencia de diálogo haga clic derecho en su proyecto en el Explorador de soluciones y seleccione Agregar referencia ... . Debería verse algo como:
fuente
System.Net.Http.dll?Add Referencescuando aparezca el cuadro de diálogo, seleccione la pestaña más a la izquierda (no uso el cuadro de diálogo de referencias incorporado, pero el mío se llama Ensamblados ). Desplácese por la lista hasta que vea un elemento llamadoSystem.Net.Httphaga doble clic en él y reconstruya.Paquete NuGet> Microsoft.AspNet.WebApi.Client
fuente
Cómo lo resolví.
En mi caso tenía al principio .Net 4.0 y "Ensamblados" -> opción "Extensiones" "System.Net.Http" con la versión 2.0.0.0. Después de mis acciones "Assemblies" -> "Framework", las opciones "System.Net.Http" y "System.Net.Http" tenían la misma versión 4.0.0.0.
fuente
Consola del Administrador de paquetes de Visual Studio> Paquete de instalación Microsoft.AspNet.WebApi.Client
fuente
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, seleccione la pestaña Examinar . Navegue a la ruta de instalación de los ensamblados para la instalación de MVC4 (generalmente en Archivos de programa (x86) / Microsoft ASP.NET/ASP.NET MVC4 / ensambles) y seleccione el ensamblado llamado 'System.Net.Http.dll'. Ahora puede agregar su 'usando System.Net.Http' en la parte superior de su código y comenzar a crear conexiones HttpClient.
fuente
solo ve para agregar referencia y luego agrega
fuente
Debe tener una referencia al
System.Web.Httpensamblado que tiene laHTTPClientclase que está intentando usar. Intente agregar la siguiente línea antes de su declaración de claseSi aún recibe el error, intente hacer esto en
Visual StudioSystem.Web.Http.dll).fuente
HttpClientpertenece alSystem.Web.Http.dllensamblado .NET 4.5 (noSystem.Net).Properties. Debería verReferencesen el lado izquierdo.Para mí, estaba obteniendo el paquete nuget Microsoft.Net.Http. ( Https://blogs.msdn.microsoft.com/bclteam/p/httpclient/ )
fuente
Necesitarás un
using System.Net.Httpen la parte superior.fuente
HttpClient es nuevo en .net 4.5. Probablemente debería usar HttpWebRequest .
fuente
HttpWebRequest, aunque no estoy seguro de por qué no lo están usando.Para resolver el problema :
Net framework 4.5para terminar de cargarSystem.Net.Httpy haga clic en Aceptar.Problema resuelto.
fuente
Hacer que la propiedad "Copiar local" sea verdadera para la referencia lo hizo por mí. Expanda Referencias, haga clic con el botón derecho en System.Net.Http y cambie el valor de la propiedad Copiar local a Verdadero en la ventana de propiedades. Estoy usando VS2019.
fuente
Asegúrese de que esté referenciado en su web.config:
fuente
Con Nuget Package Manager, instale Microsoft.AspNet.WebApi.Core.
Después de este:
o si usa VB
imports System.Web.Httpfuente
Tuve este problema después de actualizar a .NET Framework 4.7.2. Descubrí que el paquete Nuget para System.Net.Http ya no se recomienda. A continuación, presentamos algunas soluciones alternativas:
fuente
En Visual Studio puede usar nuget para cargar el paquete
fuente