System.Net.Http: mancante dallo spazio dei nomi? (usando .net 4.5)

TL; DR: Sono nuovo in questa lingua e non ho idea di cosa sto facendo

ecco la mia class finora:

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

quando faccio csc nomefile.cs, ottengo il seguente errore:

Il nome del tipo o spazio dei nomi ‘Http’ non esiste nello spazio dei nomi ‘System.Net’ (ti manca un riferimento all’assembly?)

HttpClient vive nello spazio System.Net.Http nomi System.Net.Http .

Dovrai aggiungere:

 using System.Net.Http; 

E assicurati di fare riferimento a System.Net.Http.dll in .NET 4.5.


Il codice pubblicato non sembra fare nulla con webClient . C’è qualcosa di sbagliato nel codice che è in realtà compilazione usando HttpWebRequest ?


Aggiornare

Per aprire la finestra di dialogo Aggiungi riferimento , fare clic con il pulsante destro del mouse sul progetto in Esplora soluzioni e selezionare Aggiungi riferimento …. Dovrebbe assomigliare a qualcosa:

inserisci la descrizione dell'immagine qui

NuGet> Librerie client API Web Microsoft ASP.NET

Come l’ho risolto.

  1. Aprire il progetto (!) “Proprietà”, selezionare “Applicazione”, selezionare il framework di riferimento “.Net Framework 4.5”
  2. Fai clic con il tasto destro del mouse sul tuo progetto -> Aggiungi riferimento
  3. Assicurati che in “Assemblies” -> “Extensions” l’opzione “System.Net.Http” sia deselezionata
  4. Vai su “Assemblies” -> “Framework” e seleziona “System.Net.Http” e “System.Net.Http” opzioni
  5. Questo è tutto!

Nel mio caso ho avuto all’inizio .Net 4.0 e “Assemblies” -> “Estensioni” opzione “System.Net.Http” con la versione 2.0.0.0. Dopo le mie azioni “Assemblies” -> “Framework” le opzioni “System.Net.Http” e “System.Net.Http” avevano la stessa versione 4.0.0.0.

Console di Visual Studio Package Manager> Pacchetto di installazione Microsoft.AspNet.WebApi.Client

Supponendo che usi Visual Studio 10, puoi scaricare un’installazione che include System.Net.Http, per Visual Studio 10 qui: scarica MVC4 per VS10

Una volta installato, fai clic con il pulsante destro del mouse sulla cartella Riferimenti nel progetto VS, quindi seleziona Aggiungi riferimento . Quindi, selezionare la scheda Sfoglia . Passare al percorso di installazione degli assiemi per l’installazione di MVC4 (in genere in Programmi (x86) / Microsoft ASP.NET/ASP.NET MVC4 / assiemi) e selezionare l’assembly denominato “System.Net.Http.dll”. Ora puoi aggiungere il tuo ‘using System.Net.Http’ nella parte superiore del tuo codice e iniziare a creare connessioni HttpClient.

È necessario disporre di un riferimento all’assembly System.Web.Http che abbia la class HTTPClient , che si sta tentando di utilizzare. Prova ad aggiungere la riga sottostante prima della dichiarazione della class

 using System.Web.Http; 

Se ottieni ancora l’errore, prova a farlo in Visual Studio

  1. Fare clic con il tasto destro sulla cartella Riferimenti sul progetto.
  2. Seleziona Aggiungi riferimento.
  3. Seleziona la scheda .NET (o seleziona il pulsante Sfoglia se non è un assembly di .NET Framework).
  4. Fare doppio clic sull’assieme che contiene lo spazio dei nomi nel messaggio di errore ( System.Web.Http.dll ).
  5. Premere il tasto OK.

basta andare ad aggiungere riferimento quindi aggiungere

 system.net.http 

inserisci la descrizione dell'immagine qui

Per me, stava ricevendo il pacchetto nuget Microsoft.Net.Http. ( https://blogs.msdn.microsoft.com/bclteam/p/httpclient/ )

Avrai bisogno di using System.Net.Http in alto.

HttpClient è nuovo in .net 4.5. Probabilmente dovresti usare HttpWebRequest .

Per risolvere il problema,

1. Vai al tuo esploratore di soluzioni. 2. Fare clic con il pulsante destro del mouse sul nome del progetto e scegliere Aggiungi 3. Selezionare i riferimenti e consentire il .Net framework 4.5 per completare il caricamento 4. Scorrere verso il basso e selezionare System.Net.Http e fare clic su OK. Problema risolto.

  use system.Net, system.Net.WebRequest 

ho avuto un problema simile o stesso problema e l’ho risolto di recente. tuttavia ho anche aggiunto system.net.http, ma non è stato risolto.

Ho continuato a ottenere l’errore anche dopo aver aggiunto l’utilizzo di System.Net.Http ai riferimenti in Android e avevo già installato il pacchetto Nugget microsoft.net.http.

È risultato che non ho aggiunto System.Net.Http al progetto iOS, quando l’ho fatto, ha risolto il problema.