WebRequest超时访问Dropbox文件。浏览器可以下载链接

时间:2016-07-08 14:53:58

标签: .net vb.net httpwebrequest

我花了一天时间试图解决这个问题。请帮忙!

我有一个Dropbox文件共享链接,它只有SQL Server Express设置,所以不用担心共享实时链接。

我的浏览器可以正常下载...文件开始在Chrome中下载。

https://www.dropbox.com/s/7dtg1d2cq9byccm/en_sql_server_2008_r2_express_edition_with_advanced_services_with_service_pack_2_x64_914054.exe.download?dl=1

但是,我尝试使用标准的webrequest下载此文件,连接每次都会超时。

请注意,浏览器可以下载文件而不用我登录我自己的保管箱,所以我知道它不是权限。

WebClient.DownloadFile似乎也失败了,所以我想知道地址是否有问题?

我尝试使用'ServerCertificateValidationCallback'验证证书(但它没有调用),我也设置了安全协议

代码如下:

Dim oReq As HttpWebRequest
oReq = HttpWebRequest.Create("https://www.dropbox.com/s/7dtg1d2cq9byccm/en_sql_server_2008_r2_express_edition_with_advanced_services_with_service_pack_2_x64_914054.exe.download?dl=1")
oReq.Timeout = 20000 '20 secs
oReq.Proxy = Nothing 'Specifically setting proxy to null can speed up the request (Src: StackOverflow)

''Setup credentials to avoid 401 error
oReq.UseDefaultCredentials = True
''oReq.PreAuthenticate = True
oReq.Credentials = CredentialCache.DefaultCredentials

'oReq.ContentType = "application/xml"

'oReq.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
'oReq.ProtocolVersion = HttpVersion.Version10
'oReq.Headers.Add("Accept-Language", "en_US")

'oReq.Method = "GET"
'oReq.KeepAlive = True
'oReq.AllowAutoRedirect = True

'oReq.ReadWriteTimeout = 20000

Try
Using oResp As HttpWebResponse = oReq.GetResponse


End Using

Catch exWebTimeout As System.Net.WebException

End Try

我留下了很多评论,所以你们可以看到我尝试过的东西!

提前致谢!

1 个答案:

答案 0 :(得分:0)

我首先想到的是,这是因为文件超过1,000 MB,而你的超时设置为20秒。我相信如果请求在20秒内没有完成,Timeout将会触发,并且此文件肯定不会在那段时间内下载。我会尝试下载一个更小的文件,一个你知道可以在20秒内下载的文件,看看是否有效。