从https使用VB.net下载文件

问题描述:

任何人都可以帮助我吗?从https使用VB.net下载文件

我需要从网上下载文件,例如https:\ www.xxx.com \使用vb.net并将其保存到系统的C盘。

下面是代码:

Dim URI As String = ftpHost & ftpFile 
Dim oRequest As System.Net.HttpWebRequest = CType(HttpWebRequest.Create(URI), HttpWebRequest) 
oRequest.Credentials = New System.Net.NetworkCredential(userName, pwd)   
Using oResponse As System.Net.WebResponse = CType(oRequest.GetResponse, System.Net.WebResponse) 
    Using responseStream As IO.Stream = oResponse.GetResponseStream 
     Using fs As New IO.FileStream(localFile, FileMode.Create, FileAccess.Write) 
      Dim buffer(2047) As Byte 
      Dim read As Integer 
      Do 
      read = responseStream.Read(buffer, 0,buffer.Length) 
       fs.Write(buffer, 0, read) 
      Loop Until read = 0 
      responseStream.Close() 
      fs.Flush() 
      fs.Close() 
     End Using 
     responseStream.Close() 
    End Using 
    oResponse.Close() 
End Using 

但这不是读书什么。

在此先感谢。

+0

只是好奇,你的变量名为ftpHost,但你使用的是http请求? – Nate 2010-07-21 17:18:41

+0

是的,在我用这个从FTp站点下载之前,懒得去更改var名称:) – Swapnil 2010-07-21 17:38:13

+0

那没有帮助,我不需要代理。请参阅我一直在使用的代码。 – Swapnil 2010-07-21 17:14:06

我跑你的代码https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js下载最新的jQuery库,一切工作正常。我使用了一个虚拟的用户名/密码'name'/'pwd'。我唯一能想到的是你的凭证是无效的。如果你改变你的代码来下载我上面提到的jQuery文件,它是否工作?如果是这样,我会看看你传递的信誉,以及你在服务器端如何处理它们。

希望这会有所帮助。

---修改后的代码---

Dim URI As String = "https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" 
    Dim oRequest As System.Net.HttpWebRequest = CType(HttpWebRequest.Create(URI), HttpWebRequest) 
    oRequest.Credentials = New System.Net.NetworkCredential("name", "pwd") 
    Using oResponse As System.Net.WebResponse = CType(oRequest.GetResponse, System.Net.WebResponse) 
     Using responseStream As IO.Stream = oResponse.GetResponseStream 
      Using fs As New IO.FileStream("c:\temp\jquery-1.4.2.js", FileMode.Create, FileAccess.Write) 
       Dim buffer(2047) As Byte 
       Dim read As Integer 
       Do 
        read = responseStream.Read(buffer, 0, buffer.Length) 
        fs.Write(buffer, 0, read) 
       Loop Until read = 0 
       responseStream.Close() 
       fs.Flush() 
       fs.Close() 
      End Using 
      responseStream.Close() 
     End Using 
     oResponse.Close() 
    End Using 
+0

我还注意到的一件事是,如果我更改URL以使用jQuery的CDN(https://code.jquery.com/jquery-1.4.2.min.js),则GetResponse被调用时会出现异常。我认为code.jquery.com证书已过期 - 所以也许这也是一个问题。 – 2010-07-21 18:39:58

请问您的目标网站https://foo.com/bar.txt本作foo.com或其他网站的证书?

如果它没有foo.com的证书,这可能是问题的一部分。