html - 请求 Google Text-To-Speech API

标签 html url hyperlink google-translate

<分区>

我有这个网址:http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello+world 当我把它放到浏览器的地址栏并按回车键时,我得到了带有合成语音的 mp3 文件,上面写着“Hello world”。一切都是正确的。

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

<a href="http://translate.google.com/translate_tts?ie=utf-8&tl=en&q=Hello+world">Link</a>

当我点击这个链接时,我没有得到一个文件,而是一个错误(简单的 QuickTime 标志)。谁能解释一下为什么会这样,我该如何解决我的问题?

最佳答案

解释是谷歌限制了这个服务的使用:根据this StackOverflow answer ,如果 HTTP 请求包含 Referer header,Google 将返回 404 错误除了空字符串。

当您在地址栏中键入 URL 时,没有任何 Referer URL 会传输给 Google。当您点击一个超链接时,您就有了一个引荐来源网址,Google 会阻止您的请求。

注意:我测试了您的 URL(请参阅 here),它有效。我怀疑这只是因为我之前尝试过在地址栏中输入 URL,而该资源仍在我的浏览器缓存或我的音频插件 (VLC) 缓存中。

NB2:参见here寻求解决方法。

关于html - 请求 Google Text-To-Speech API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12883330/

相关文章:

testing - 如何在 Cypress 中只保存部分 URL(没有域名)

asp.net - 使用 GridView HyperLinkField 设置 CategoryID

javascript - 弹出窗口关闭后触发的事件

php - 如何使用 php 和 javascript 从 mysql 中删除行

html - 在 HTML sublime text 2 中自动完成 css 类或 id

url - UUID 是 "URL safe"吗?

javascript - 将 URL 参数从一个页面传递到另一页面

CSS 打印预览 - 显示图像/链接 URL

android - 如何在 Android 应用程序中打开 Youtube 视频链接?

javascript - 如何从一个 HTML 表格拖放到另一个表格?