2016-05-31 110 views
0

我建立了一些代码来从雅虎检索股票数据作为一个CSV文件,它工作正常。当我改变的URL 完全合法版本,从谷歌回忆minutewise数据,而不是,它失败的为什么这个URL不能在IXMLHttpRequest对象中工作?

objHTTP.open "GET", strURL, False 

声明。

下面的代码显示了两个URL,但显然只有最后一个被调用。这两个URL在发布到浏览器的地址栏时都可以工作。

任何人都可以解释为什么打到谷歌的网页不会打开?

option explicit 

    Dim objHTTP 
    dim strURL 
    dim objFile 

    dim objFSO 
    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    Set objHTTP = CreateObject("MSXML2.XMLHTTP") 
    ' WORKS: 
    strURL = "http://real-chart.finance.yahoo.com/table.csv?s=UPRO&a=04&b=21&c=2016&d=04&e=31&f=2016&g=d&ignore=.csv" 
    ' DOES NOT WORK: 
    strURL = "www.google.com/finance/getprices?q=UPRO&i=60&p=20d&f=d,c,v,k,o,h,l&df=cpct&auto=0&ei=Ef6XUYDfCqSTiAKEMg" 

    objHTTP.open "GET", strURL, False 
    objHTTP.send 
    msgbox objHTTP.responseText 
    Set objFile = objFSO.CreateTextFile _ 
     ("Yahoo.csv", 2) 
    objFile.Write objHTTP.ResponseText 
    objFile.Close 

回答

2

您在缺少URL时缺少http://。当我添加这个时,我得到了响应数据。

+2

应该是被接受的答案,可能会尝试填补答案有点?它的工作原因是[IXMLHttpRequest对象](https://msdn.microsoft.com/en-us/library/ms757849(v = vs.85).aspx)需要一个有效的URL *(这意味着包括协议例如'http'或'https')*。从docs - *“请求的URL。它可以是一个绝对URL,比如'”http://Myserver/Mypath/Myfile.asp“',或者一个相对URL,比如'”../MyPath/ MyFile.asp “'。” * – Lankymart

相关问题