请求使用Google文字转语音API

Pio*_*cki 6 html url hyperlink google-translate

我有这个URL:http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello+world 当我把它放到浏览器的地址栏并点击回车时,我得到了带有"Hello world"的综合语音的mp3文件.一切都是正确的.

但现在我在HTML中有一个重定向到此URL的链接,如下所示:

<a href="http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello+world">Link</a>
Run Code Online (Sandbox Code Playgroud)

当我单击此链接时,我没有收到文件但是出现错误(简单的QuickTime徽标).任何人都可以解释我为什么会这样,我怎样才能解决我的问题?

oli*_*sle 6

解释是Google限制此服务的使用:根据此StackOverflow答案,如果HTTP请求包含除空字符串之外的Referer标头,则Google会返回404错误.

当您在地址栏中键入URL时,它没有问题,因为没有将Referer URL传输到Google.当您点击超链接时,您有一个引用者,谷歌会阻止您的请求.

注意:我测试了你的URL(见这里),它有效.我怀疑这只是因为我之前尝试过在地址栏中输入URL,资源仍然在我的浏览器缓存或我的音频插件(VLC)缓存中.

NB2:请参阅此处获取解决方法.