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;
}
}
}
}
I've used HttpClient in .NET 4.0 applications on numerous occasions. If you are familiar with NuGet, you can do an Install-Package Microsoft.Net.Http to add it to your project. See the link below for further details.