Я пишу некоторый код для использования текста Google translate в речь, используя простой метод GET, и я озадачен, почему он не работает.Например, нажмите…
http://translate.google.com/translate_tts?tl=en&q=hello
Я написал некоторый код на C # и, насколько я могу судить, он должен работать, но это не так.Я бродю, если Google блокирует запросы?Попытка выполнить это из консоли дает ошибку 403 («Запрещено»).
Ниже приведен код.Если кто-то может помочь, я буду признателен за это!
namespace WCTest
{
public partial class MainPage : PhoneApplicationPage
{
string searchString = "http://translate.google.com/translate_tts?tl=en&q=hello";
// Constructor
public MainPage()
{
InitializeComponent();
WebClient client = new WebClient();
client.Headers["User-Agent"] = "Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 6.0)" + " (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
client.Headers["Referrer"] = "http://brillisoft.com";
client.OpenReadCompleted += (s, e) =>
{
if (e.Error == null)
{
Stream audio = e.Result;
mediaElement1.SetSource(audio);
mediaElement1.Play();
}
};
client.OpenReadAsync(new Uri(searchString));
}
}
}
Обновление ... 10 марта ...
Сага продолжается ... Следующий код работает на некоторых из моих коллег'Компьютеры, но не на моем ... Что может вызвать это?Пожалуйста, дайте мне знать, если это работает для вас, и если вы считаете необходимым сохранить файл в IsolatedStorage ...
namespace PhoneApp1
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
string searchString = "http://translate.google.com/translate_tts?tl=en&q=it+works";
private void button1_Click(object sender, RoutedEventArgs e)
{
WebClient client = new WebClient();
client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 6.0)" + " (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
client.Headers[HttpRequestHeader.Referer] = "http://translate.google.com";
client.OpenReadCompleted += (s, ex) =>
{
if (ex.Error == null)
{
using (var store = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication())
{
if (store.FileExists("hello3.mp3"))
{
store.DeleteFile("hello3.mp3");
}
using (var fs = new System.IO.IsolatedStorage.IsolatedStorageFileStream("hello3.mp3", System.IO.FileMode.Create, store))
{
byte[] bytesInStream = new byte[ex.Result.Length];
ex.Result.Read(bytesInStream, 0, (int)bytesInStream.Length);
fs.Write(bytesInStream, 0, bytesInStream.Length);
fs.Flush();
mediaElement1.SetSource(fs);
}
}
mediaElement1.Play();
}
};
client.OpenReadAsync(new Uri(searchString));
}
}
}