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?)
webClient
campo). Además, nunca lo usas para nada. Probablemente podrías simplemente eliminarlo.Respuestas:
HttpClient
vive en elSystem.Net.Http
espacio de nombres.Deberá agregar:
Y asegúrese de hacer referencia
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 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 References
cuando 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.Http
haga 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.Http
ensamblado que tiene laHTTPClient
clase 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 Studio
System.Web.Http.dll
).fuente
HttpClient
pertenece alSystem.Web.Http.dll
ensamblado .NET 4.5 (noSystem.Net
).Properties
. Debería verReferences
en 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.Http
en 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.5
para terminar de cargarSystem.Net.Http
y 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.Http
fuente
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