consumir consume c# api rest post

consume - rest api c#



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

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.

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?)


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 declaración 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.

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


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



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.


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 programa (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.


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


solo ve para agregar referencia y luego agrega

system.net.http



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á compilando 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:


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ó.