speedtest.net api

时间:2012-04-05 04:30:07

标签: jquery google-chrome-extension

我想创建一个小部件来显示用户最近的速度测试结果。 speedtest.net有我可以使用的api吗?我尝试向http://speedtest.net/csv.php?csv=1&ria=0&s=0发出ajax请求,但遇到了跨域错误。我尝试过iframe,但这只是让它出现在下载中。

这将在Google Chrome扩展程序中,因此我可以根据需要使用chrome api。

4 个答案:

答案 0 :(得分:10)

speedtest.net由Ookla and their Speed Test application运行。不幸的是,他们没有为你可以使用的speedtest.net提供任何公共API。

虽然我怀疑其中任何一个都满足您的需求,但它们确实提供了Speed Test Minihosted reporting solution for their full Speed Test software package(包括CSV导出功能)。

您无法使用AJAX的原因是Chrome不允许JavaScript执行跨网站请求,除非在speedtest.net的响应中设置Access-Control-Allow-Origin响应标头以允许此类请求。< / p>

但是,在Chrome扩展程序中,您可以通过将网址添加到manifest.json文件的权限部分来允许跨源请求。例如:

"permissions": [
  "http://*/"
],

然后您可以使用一些jQuery将CSV数据检索为字符串(请参阅this answer):

$.get('http://speedtest.net/csv.php?csv=1&ria=0&s=0', function(data) {
    var csv = new String(data);
    // do stuff with csv
}, dataType='text');

答案 1 :(得分:1)

您可以在Chrome扩展程序中创建跨源XMLHttpRequests,只要您已为其请求了权限。

manifest.json文件中,添加URI:

"permissions": ["http://speedtest.net/csv.php?*"]

另请参阅:Match patterns

答案 2 :(得分:1)

Ookla确实提供了API

您需要获取其API密钥。他们还提供了一个示例Python脚本。

答案 3 :(得分:0)

试试MySpeed.today。它可能会有用。