128 votes

System.Net.Http : missing from namespace ? (avec .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'à présent :

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

lorsque je fais csc filename.cs, j'obtiens l'erreur suivante :

Le nom de type ou d'espace de nom 'Http' n'existe pas dans l'espace de nom 'System.Net' (il vous manque une référence d'assemblage ?).

0 votes

Vous essayez d'accéder à un champ non statique à partir d'une méthode statique (la méthode webClient ). De plus, vous ne l'utilisez jamais vraiment pour quoi que ce soit. Vous pourriez probablement le supprimer.

2voto

Kibbee Points 36474

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

0 votes

Le code inclus dans la question utilise déjà HttpWebRequest Je ne sais pas pourquoi ils ne l'utilisent pas.

0 votes

Approuvé. Le HTTPClient est déclaré, mais n'est jamais utilisé. C'est très étrange.

0 votes

J'ai un problème avec l'inclusion de l'espace de nom. using System.Net.Http ; yeilds the error 'Http' does not exist in the namespace 'System.Net'.

2voto

enraged Points 11

Avec le gestionnaire de paquets Nuget, installez Microsoft.AspNet.WebApi.Core.

Après ça :

using System.Web.Http;

ou si vous utilisez VB

imports System.Web.Http

0voto

boakye_wozniac Points 37

Pour résoudre le problème :

  1. Allez dans votre explorateur de solutions.
  2. Cliquez à droite sur le nom du projet et choisissez ajouter
  3. Sélectionnez les références et autorisez le . Net framework 4.5 pour finir de charger
  4. Faites défiler vers le bas et sélectionnez System.Net.Http et cliquez sur ok.

Problème résolu.

0voto

Goodmedalist Points 148

Le fait de rendre la propriété "Copy Local" True pour la référence a fonctionné pour moi. Développez les références, faites un clic droit sur System.Net.Http et changez la valeur de la propriété Copy Local en True dans la fenêtre des propriétés. J'utilise VS2019.

-1voto

Cetin Sahin Points 1

Dans Visual Studio, vous pouvez utiliser nuget pour charger le paquet.

Microsoft.AspNet.WebApi.WebHost

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X