HttpClient n’existe pas dans .net 4.0: que puis-je faire?

Ok j’ai édité mon code, je ne reçois pas d’erreurs mais le messageBox.Show ne retourne rien boîte vide. Peut-être que je dois append quelque chose dans la chaîne de référence? Je n’ai pas compris quel est le référent et que devrais-je y mettre. Et j’ai déjà une clé im en utilisant dans mon code. La clé est une longue chaîne et je l’utilise dans mon code que je n’utilise pas avec le référent. Pourquoi ce dosent traduit-il le mot “salut”?

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Globalization; using System.IO; using System.Net; using System.Web; using System.Web.Script.Serialization; namespace WindowsFormsApplication2 { public partial class Form1 : Form { private JavaScriptSerializer _Serializer = new JavaScriptSerializer(); public Form1() { InitializeComponent(); ssortingng f = TranslateText("hi", "English", "German", "", ""); MessageBox.Show(f); } private void Form1_Load(object sender, EventArgs e) { } public ssortingng TranslateText(ssortingng inputText, ssortingng sourceLanguage, ssortingng destinationLanguage, ssortingng referrer, ssortingng apiKey) { ssortingng requestUrl = ssortingng.Format( "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q={0}&langpair={1}|{2}&key={3}", HttpUtility.UrlEncode(inputText), sourceLanguage.ToLowerInvariant(), destinationLanguage.ToLowerInvariant(), apiKey ); try { HttpWebRequest http = (HttpWebRequest)HttpWebRequest.Create(requestUrl); http.Referer = referrer; HttpWebResponse response = (HttpWebResponse)http.GetResponse(); using (StreamReader sr = new StreamReader(response.GetResponseStream())) { ssortingng responseJson = sr.ReadToEnd(); var translation = this._Serializer.Deserialize<Milkshake.Integration.Google.GoogleAjaxResponse>(responseJson); if (translation != null && translation.ResponseData != null && translation.ResponseData.ResponseStatus == HttpStatusCode.OK) { return translation.ResponseData.TranslatedText; } else { return Ssortingng.Empty; } } } catch { return Ssortingng.Empty; } } } } 

  • Vous pouvez utiliser WebClient .

  • Ou (si vous avez besoin d’un contrôle plus fin sur la requête) HttpWebRequest

  • Ou, HttpClient dans System.Net.Http.dll.

Voici une “traduction” vers HttpWebRequest (nécessaire plutôt que WebClient pour définir le référent). (Utilise System.Net et System.IO):

  HttpWebRequest http = (HttpWebRequest)HttpWebRequest.Create(requestUrl)) http.Referer = referrer; HttpWebResponse response = (HttpWebResponse )http.GetResponse(); using (StreamReader sr = new StreamReader(response.GetResponseStream())) { ssortingng responseJson = sr.ReadToEnd(); // more stuff } 

J’ai utilisé HttpClient dans les applications .NET 4.0 à de nombreuses occasions. Si vous êtes familier avec NuGet, vous pouvez faire un Install-Package Microsoft.Net.Http pour l’append à votre projet. Voir le lien ci-dessous pour plus de détails.

http://nuget.org/packages/Microsoft.Net.Http

En ce qui concerne les réponses ci-dessus, je ne fais qu’append ceci pour aider à clarifier les choses. Il est possible d’utiliser HttpClient à partir de .Net 4.0, et vous devez installer le package à partir d’ ici

Cependant, le texte est très confus et se contredit.

Ce package n’est pas pris en charge dans Visual Studio 2010 et n’est requirejs que pour les projets ciblant .NET Framework 4.5, Windows 8 ou Windows Phone 8.1 lors de l’utilisation d’une bibliothèque utilisant ce package.

Mais en dessous, il est indiqué que ce sont les plates-formes sockets en charge.

Plates-formes sockets en charge:

  • .NET Framework 4

  • Windows 8

  • Windows Phone 8.1

  • Windows Phone Silverlight 7.5

  • Silverlight 4

  • Bibliothèques de classes portables

Ignorez ce qu’il est question de cibler .Net 4.5. C’est faux. Le paquet concerne l’utilisation de HttpClient dans .Net 4.0. Cependant, vous devrez peut-être utiliser VS2012 ou supérieur. Je ne sais pas si cela fonctionne dans VS2010, mais cela peut valoir la peine d’être testé.

lis ça…

Portable HttpClient pour .NET Framework et Windows Phone

voir le paragraphe Utiliser HttpClient sur .NET Framework 4.0 ou Windows Phone 7.5 http://blogs.msdn.com/b/bclteam/archive/2013/02/18/portable-httpclient-for-net-framework-and-windows-phone .aspx

En accord avec le commentaire de TrueWill sur une réponse séparée, la meilleure façon d’utiliser system.web.http sur un projet ciblé .NET 4 sous Visual Studio actuel est Install-Package Microsoft.AspNet.WebApi.Client -Version 4.0.30506