System.Net.Http: manquant dans l’espace de noms? (en utilisant .net 4.5)

TL; DR: Je suis nouveau dans cette langue et je n’ai aucune idée de ce que je fais

voici ma classe jusqu’ici:

using System; using System.Collections.Generic; using System.Net.Http; using System.Web; using System.Net; using System.IO; public class MyClass { private const ssortingng URL = "https://sub.domain.com/objects.json?api_key=123"; private const ssortingng 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); ssortingng response = responseReader.ReadToEnd(); responseReader.Close(); } catch (WebException we) { ssortingng webExceptionMessage = we.Message; } catch (Exception ex) { // no need to do anything special here.... } } static void Main(ssortingng[] args) { MyClass.CreateObject(); } } 

quand je fais csc filename.cs, j’obtiens l’erreur suivante:

Le type ou le nom d’espace de noms “Http” n’existe pas dans l’espace de noms “System.Net” (manque-t-il une référence d’assembly?)

HttpClient réside dans l’espace de noms System.Net.Http .

Vous devrez append:

 using System.Net.Http; 

Et assurez-vous que vous faites référence à System.Net.Http.dll dans .NET 4.5.


Le code affiché ne semble rien faire avec webClient . Y a-t-il quelque chose qui ne va pas dans le code qui comstack en utilisant HttpWebRequest ?


Mettre à jour

Pour ouvrir la boîte de dialog Ajouter une référence, cliquez avec le bouton droit sur votre projet dans l’ Explorateur de solutions et sélectionnez Ajouter une référence …. Il devrait ressembler à quelque chose comme:

entrer la description de l'image ici

NuGet> Bibliothèques de clients Microsoft ASP.NET Web API

Comment je l’ai résolu.

  1. Ouvrez le projet (!) “Propriétés”, choisissez “Application”, sélectionnez le cadre de ciblage “.Net Framework 4.5”
  2. Faites un clic droit sur votre projet -> Ajouter une référence
  3. Assurez-vous que dans “Assemblies” -> “Extensions” option “System.Net.Http” est décochée
  4. Allez dans “Assemblys” -> “Framework” et sélectionnez les options “System.Net.Http” et “System.Net.Http”
  5. C’est tout!

Dans mon cas, j’avais au début .Net 4.0 et “Assemblies” -> “Extensions” option “System.Net.Http” avec la version 2.0.0.0. Après mes actions “Assemblies” -> “Framework” les options “System.Net.Http” et “System.Net.Http” avaient la même version 4.0.0.0.

Console du gestionnaire de packages Visual Studio> Package d’installation Microsoft.AspNet.WebApi.Client

En supposant que votre utilisation de Visual Studio 10, vous pouvez télécharger une installation qui inclut System.Net.Http, pour Visual Studio 10 ici: télécharger MVC4 pour VS10

Une fois que vous l’avez installé, cliquez avec le bouton droit sur le dossier Références dans le projet VS, puis sélectionnez Ajouter une référence . Ensuite, sélectionnez l’onglet Parcourir . Accédez au chemin d’installation des assemblys pour l’installation de MVC4 (généralement dans les fichiers Program Files (x86) / Microsoft ASP.NET/ASP.NET MVC4 /) et sélectionnez l’assembly nommé ‘System.Net.Http.dll’. Vous pouvez maintenant append votre “using System.Net.Http” en haut de votre code et commencer à créer des connexions HttpClient.

Vous devez avoir une référence à l’assembly System.Web.Http qui possède la classe HTTPClient , que vous essayez d’utiliser. Essayez d’append la ligne ci-dessous avant votre déclaration de classe

 using System.Web.Http; 

Si vous obtenez toujours l’erreur, essayez de le faire dans Visual Studio

  1. Faites un clic droit sur le dossier Références de votre projet.
  2. Sélectionnez Ajouter une référence.
  3. Sélectionnez l’onglet .NET (ou sélectionnez le bouton Parcourir s’il ne s’agit pas d’un assembly .NET Framework).
  4. Double-cliquez sur l’assembly contenant l’espace de noms dans le message d’erreur ( System.Web.Http.dll ).
  5. Appuyez sur le bouton OK.

il suffit d’aller append une référence puis append

 system.net.http 

entrer la description de l'image ici

Pour moi, il s’agissait du package nuget Microsoft.Net.Http ( https://blogs.msdn.microsoft.com/bclteam/p/httpclient/ ).

Vous aurez besoin d’un using System.Net.Http en haut.

HttpClient est nouveau dans .net 4.5. Vous devriez probablement utiliser HttpWebRequest .

Résoudre le problème,

1. Accédez à votre explorateur de solution. 2. Cliquez avec le bouton droit sur le nom du projet et choisissez Ajouter. 3. Sélectionnez les références et laissez le framework .Net 4.5 terminer son chargement. 4. Faites défiler la liste et sélectionnez System.Net.Http et cliquez sur OK. Problème résolu.

  use system.Net, system.Net.WebRequest 

J’ai eu un problème similaire ou identique et corrigé récemment. Cependant, j’avais aussi system.net.http ajouté auparavant, mais cela ne l’a pas résolu.

J’ai continué à obtenir l’erreur, même après avoir ajouté le System.Net.Http à l’aide des références dans Android et j’avais déjà installé le paquet Nugget microsoft.net.http.

Il s’est avéré que je n’ai pas ajouté le System.Net.Http au projet iOS, quand j’ai résolu le problème.