TL; DR: Je suis nouveau dans cette langue et 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();
}
}
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' (il manque une référence d'assembly?)
HttpClient
habite le System.Net.Http
espace de noms.
Vous devrez ajouter:
using System.Net.Http;
Et assurez-vous de référencer System.Net.Http.dll
dans .NET 4.5.
Le code posté ne semble rien faire avec webClient
. Y at-il quelque chose qui cloche dans le code qui compile réellement avec HttpWebRequest
?
Mettre à jour
Pour ouvrir la boîte de dialogue Ajouter une référence, cliquez avec le bouton droit sur votre projet dans Explorateur de solutions et sélectionnez Ajouter une référence .... Cela devrait ressembler à quelque chose comme:
NuGet> Bibliothèques clientes de l'API Web Microsoft ASP.NET
Comment je l'ai résolu.
Dans mon cas, j'avais au début .Net 4.0 et "Assemblées" -> option "Extensions" "System.Net.Http" avec la version 2.0.0.0. Après mes actions "Assemblies" -> "Options du cadre" "System.Net.Http" et "System.Net.Http" avaient la même version 4.0.0.0.
Console Visual Studio Package Manager> Package d'installation Microsoft.AspNet.WebApi.Client
En supposant que vous utilisiez Visual Studio 10, vous pouvez télécharger une installation incluant System.Net.Http pour Visual Studio 10 ici: téléchargez MVC4 pour VS10
Une fois que vous l'avez installé, cliquez avec le bouton droit de la souris sur le dossier References du projet VS, puis sélectionnez Ajouter une référence . Sélectionnez ensuite l'onglet Parcourir. Naviguez jusqu'au chemin d'installation assemblies pour l'installation de MVC4 (généralement dans Programmes (x86)/Microsoft ASP.NET/ASP.NET MVC4/assemblies) et sélectionnez l'assembly nommé 'System.Net.Http.dll'. Maintenant, vous pouvez ajouter votre 'using System.Net.Http' en haut de votre code et commencer à créer des connexions HttpClient.
Pour moi, il s’agissait de récupérer le paquet de nugets Microsoft.Net.Http . ( https://blogs.msdn.Microsoft.com/bclteam/p/httpclient/ )
Vous devez avoir une référence à l’assemblage System.Web.Http
qui a la classe HTTPClient
que vous essayez d’utiliser. Essayez d'ajouter la ligne ci-dessous avant votre déclaration de classe
using System.Web.Http;
Si vous obtenez toujours l'erreur, essayez ceci dans Visual Studio
System.Web.Http.dll
).Vous aurez besoin d'un using System.Net.Http
en haut.
Résoudre le problème,
1. allez à votre solution Explorer. 2. Cliquez avec le bouton droit sur le nom du projet et choisissez Ajouter 3. Sélectionnez des références et laissez le .NET Framework 4.5 terminer le chargement 4. Faites défiler la liste et sélectionnez System.Net.Http, puis cliquez sur ok . Problème résolu.
J'ai continué à avoir l'erreur même après avoir ajouté System.Net.Http aux références d'Android et j'avais déjà installé le paquet de nuggets Microsoft.net.http.
Il s’est avéré que j’ai ajouté le System.Net.Http au projet iOS, ce qui a permis de résoudre le problème.
use system.Net,
system.Net.WebRequest
j'ai eu le même problème ou même problème et je l'ai corrigé récemment. Cependant, System.net.http avait également été ajouté auparavant, mais cela ne l'a pas résolu.
HttpClient est une nouveauté de .net 4.5. Vous devriez probablement utiliser HttpWebRequest .