出于某种原因,这两种方法都有效:
var fetchString="http://ichart.finance.yahoo.com/table.csv?s=SPY&a=1&b=4&c=2011&d=1e=4&f=2013&g=d"
var response = UrlFetchApp.fetch(fetchString)
var fetchString="http://ichart.finance.yahoo.com/table.csv?s=IBM&a=1&b=4&c=2011&d=1e=4&f=2013&g=d"
var response = UrlFetchApp.fetch(fetchString)
但这不起作用:
var fetchString="http://ichart.finance.yahoo.com/table.csv?s=^GSPC&a=1&b=4&c=2011&d=1e=4&f=2013&g=d"
var response = UrlFetchApp.fetch(fetchString)
这也不起作用:
var fetchString="http://ichart.finance.yahoo.com/table.csv?s=^HSI&a=1&b=4&c=2011&d=1e=4&f=2013&g=d"
var response = UrlFetchApp.fetch(fetchString)
似乎“^”正在抛弃它?但是,如果您将该网址粘贴到任何浏览器中,数据就会出现。有谁知道这里发生了什么?
这可能是个错误吗?
答案 0 :(得分:2)
来自RFC 1738规范:
因此,只有字母数字,特殊字符“$ -_。+!*'(),”和 可以使用用于其保留目的的保留字符 在URL中未编码。
如果您对上面列出的特殊字符进行编码&保留字符,它会工作。浏览器会自动执行此操作。
这是一个有效的代码。
var fetchString="http://ichart.finance.yahoo.com/table.csv?s="+encodeURIComponent('^')+"HSI&a=1&b=4&c=2011&d=1e=4&f=2013&g=d";
var response = UrlFetchApp.fetch(fetchString);