HttpClient does not exist in .net 4.0: what can I do?
.net, c#, webclient
Solution
You can use WebClient.
Or (if you need more fine-grained control over the request) HttpWebRequest
Or, HttpClient in System.Net.Http.dll.
Here's a "translation" to HttpWebRequest (needed rather than WebClient in order to set the referrer). (Uses System.Net and System.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
}
Problem
Ok i edited my code i dont get errors but the messageBox.Show return nothing empty box. Maybe i need to add something in the referrer string ? I didnt understand what is the referrer and what should i put there. And i have a key already im using it in my code. The key is a long string and im using it in my code i dont use with the referrer. Why it dosent translate the word "hi" ? ``` 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; } } } } ```