53 votes

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 renvoie rien de case vide. Peut-être que j'ai besoin d'ajouter quelque chose dans la chaîne de référence? Je ne comprenais pas quel est le référent et que devrais-je mettre là. Et j'ai déjà une clé im l'utilise 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érant. Pourquoi est-ce qu'il traduit 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();
            string f = TranslateText("hi", "English", "German", "", "");
            MessageBox.Show(f);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        public string TranslateText(string inputText, string sourceLanguage, string destinationLanguage, string referrer, string apiKey)
        {
                string requestUrl = string.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()))
                    {
                        string responseJson = sr.ReadToEnd();
                        var translation = this._Serializer.Deserialize<Milkshake.Integration.Google.GoogleAjaxResponse<Milkshake.Integration.Google.Translate.TranslationResponse>>(responseJson);

                        if (translation != null && translation.ResponseData != null && translation.ResponseData.ResponseStatus == HttpStatusCode.OK)
                        {
                            return translation.ResponseData.TranslatedText;
                        }
                        else
                        {
                            return String.Empty;
                        }
                    }
                }
            catch
                {
                    return String.Empty;
            }
        }
    }
}
 

71voto

cecilphillip Points 4020

J'ai utilisé HttpClient dans les applications .NET 4.0 à de nombreuses reprises. Si vous connaissez NuGet, vous pouvez créer un package d'installation Microsoft.Net.Http pour l'ajouter à votre projet. Voir le lien ci-dessous pour plus de détails.

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

46voto

McGarnagle Points 56802

Voici une "traduction" de HttpWebRequest (plutôt que les WebClient pour définir le référent). (Utilise System.Net et le Système.IO):

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

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