none
problema ao acessar conteudo da web para baixar e extrair RRS feed

  • Pergunta

  • boa noite pessoal, fiz há algum tempo atrás um sistema onde o mesmo baixava, o arquivo do site da caixa com os resultados da lotofacil e depois fazia algumas análises e com isso eu fazia algumas combinações, pois bem isso faz mais de um ano atrás, enfim, funcionava que era uma beleza, porem esses dias fui utilizar o sistema e o mesmo apresentou uma falha, na parte de baixar o arquivo para o pc, verifiquei se a url não havia mudado e talz, referenciei a dll que utilizava para fazer o trabalho e nada, será que alguem poderia me ajudar? preciso baixar o arquivo do endereço http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip, e para isso estava utilizando o seguinte código:

       classe.createWebClient()
       classe.DownloadString("http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip")
       classe.DownloadFile("http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip", "C:\lotofacil\D_lotfac.zip")

    essas funções que são chamadas estão em uma outra classe, segue código das mesmas:

        Public Function createWebClient() As System.Net.WebClient
    
            Dim client = New System.Net.WebClient()
    
            client.Proxy = System.Net.HttpWebRequest.GetSystemWebProxy()
            client.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials
    
            Return client
    
        End Function
    
       
        Public Function DownloadString(ByVal address As String) As String
    
            Dim client = Me.createWebClient()
            Return client.DownloadString(address)
    
        End Function
    
     
        Public Sub DownloadFile(ByVal address As String, ByVal fileName As String)
         
            Dim client = Me.createWebClient()
            client.DownloadFile(address, fileName)
    
        End Sub

    pois bem, eu utilizava essas funções para baixar e funcionava muito bem, mas já faz mais de uma semana que estou batendo cabeça pois não consigo mais baixar o bendito arquivo com esse código...

    enfim qualquer ajuda é bem vinda...

    desde já grande abraço


    d[^.^]b

    quarta-feira, 29 de julho de 2015 00:00

Respostas

  • Vou te explicar o que o código faz, isso é desde 19e bolinhas kkk e ate hoje o Visual Studio e algumas linguagens utiliza para baixar arquivos somente pela url.

    Eu converti para VB.NET nesse link
    <DllImport("urlmon.dll", CharSet := CharSet.Auto, PreserveSig := False)> _
    Private Shared Sub URLDownloadToFile(<MarshalAs(UnmanagedType.IUnknown)> pCaller As Object, <MarshalAs(UnmanagedType.LPTStr)> szURL As String, <MarshalAs(UnmanagedType.LPTStr)> szFileName As String, dwReserved As Int32, lpfnCB As IntPtr)
    End Sub
    
    
    Private Sub button2_Click(sender As Object, e As EventArgs)
    	URLDownloadToFile(Nothing, "http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip", Application.StartupPath + "\" + "D_lotfac.zip", 0, IntPtr.Zero)
    End Sub
    


    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    • Sugerido como Resposta Marques Junior quinta-feira, 17 de setembro de 2015 12:14
    • Marcado como Resposta Marcos SJ quinta-feira, 17 de setembro de 2015 20:21
    quinta-feira, 17 de setembro de 2015 11:23
  • Mr,

    Obrigado pelas dicas.

    Consegui resolver aqui usando a declaração imports, conforme detalho abaixo para quem tiver com a mesma dificuldadeUTILIZANDO  o VB.Net


    Imports System.Runtime.InteropServices Public Class Form1 <DllImport("urlmon.dll", CharSet:=CharSet.Auto, PreserveSig:=False)> _ Private Shared Sub URLDownloadToFile(<MarshalAs(UnmanagedType.IUnknown)> ByVal pCaller As Object, <MarshalAs(UnmanagedType.LPTStr)> ByVal szURL As String, <MarshalAs(UnmanagedType.LPTStr)> ByVal szFileName As String, ByVal dwReserved As Int32, ByVal lpfnCB As IntPtr) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click URLDownloadToFile(Nothing, "http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip", Application.StartupPath + "\" + "D_lotfac.zip", 0, IntPtr.Zero) End Sub End Class


    • Sugerido como Resposta Geraldo Ribeiro sexta-feira, 18 de setembro de 2015 00:38
    • Não Sugerido como Resposta Geraldo Ribeiro sexta-feira, 18 de setembro de 2015 00:39
    • Sugerido como Resposta Geraldo Ribeiro sexta-feira, 18 de setembro de 2015 00:39
    • Marcado como Resposta Marcos SJ sexta-feira, 13 de novembro de 2015 13:07
    sexta-feira, 18 de setembro de 2015 00:38

Todas as Respostas

  • Testa assim:

    Dim wc As WebClient = New WebClient()
    wc.DownloadFile("http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip", "C:\teste.zip")


    quarta-feira, 29 de julho de 2015 12:07
  • boa noite marques, tentei da forma que vc disse mas não funcionou da erro tb...

    da o seguinte erro

    Exceção durante uma solicitação do WebClient.

    de qualquer forma mto obrigado por tentar ajudar, e se tiver mais alguma sugestão será mto bem vinda

    abraço


    d[^.^]b


    • Editado Thiago... _ quarta-feira, 29 de julho de 2015 23:27
    quarta-feira, 29 de julho de 2015 22:10
  • Estranho, aqui funcionou, baixou o arquivo ZIP.
    quinta-feira, 30 de julho de 2015 13:46
  • Estranho mesmo, eu acho que to precisando formatar é o pc mesmo kkkk

    como disse funcionava de boa e do nada parou....até chegou a passar pela minha cabeça, não sei se tem a ver mas....parece que comecou acontecer algumas coisas estranhas no vs 2010 depois que eu instalei o vs 2015rc...será que pode ter algo a ver?


    d[^.^]b

    quinta-feira, 30 de julho de 2015 16:54
  • Boa tarde Thiago,

    Não vou falar que sim pois nunca vi isso ocorrer uma nova versão ferrar com a antiga mais talvez possa acontecer por um conjunto de fatores versão do Windows, compatibilidade, já tentou atualizar o seu projeto par ao VS2015RC

    Abraços


    Matheus Leopardi Mello Canelada Campos

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 30 de julho de 2015 19:42
  • Thiago, faz o seguinte cria um novo projeto form só com um botão, e no evento click dele você adiciona esse código, para testar:

    Dim wc As WebClient = New WebClient()
    wc.DownloadFile("http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip", "C:\teste.zip")


    • Editado Marcos SJ sexta-feira, 31 de julho de 2015 17:36 Ortografia
    sexta-feira, 31 de julho de 2015 12:05
  • boa noite matheus, então, quem sabe né, vai ver é isso, ainda não tentei atualizar o prj pra o 2015 não, acho que vou formatar o pc e instalar só o 2010 como estava, pq tava tudo funcionando que é uma blz kkkkk

    vlew mesmo assim

    abraço


    d[^.^]b

    domingo, 2 de agosto de 2015 00:35
  • boa noite marcos e obrigado pela atenção, fiz um novo projeto e fiz o que vc disse e ainda assim dá o seguinte erro {"Exceção durante uma solicitação do WebClient."}

    continuo na busca por uma solução....e de qualquer forma muito obrigado pela tentativa de ajudar, qq outra sugestão sera sempre bem vinda

    abraço


    d[^.^]b

    domingo, 2 de agosto de 2015 00:37
  • Thiago,

    Estou com o mesmo problema que você.

    Pelo que percebi, pode ser algo no VS2015.

    Eu estou utilizando o VS2015 com o Win8 e estou com este problema tb. Qualquer novidade me avise.

    Eu estou agora instalando o VS2010 como tinha antes e não dava problema, qualquer coisa tb te aviso.

    Abraço.

    sábado, 12 de setembro de 2015 16:52
  • Thiago,

    Testei com VS2010 no windows 8 e continua com problema, porém não sei se acontece co vc a mesma coisa:

    no meu caso ele cria o arquivo, porém com tamanho zero o arquivo está inválido.

    E aí alguma novidade?

    sábado, 12 de setembro de 2015 19:26
  • Se estiver utilizando Windows 10 isso ocorre mesmo, para contornar eu faço dessa forma:

            [DllImport("urlmon.dll", CharSet = CharSet.Auto, PreserveSig = false)]
            private static extern void URLDownloadToFile(
                [MarshalAs(UnmanagedType.IUnknown)] object pCaller,
                [MarshalAs(UnmanagedType.LPTStr)] string szURL,
                [MarshalAs(UnmanagedType.LPTStr)] string szFileName,
                Int32 dwReserved,
                IntPtr lpfnCB);
    
    
     private void button2_Click(object sender, EventArgs e)
            {
                URLDownloadToFile(null,"http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip",Application.StartupPath + "\\" + "D_lotfac.zip", 0,IntPtr.Zero);
            }
    
    

    Funciona de boa mesmo (Converte para VB.net)

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel



    domingo, 13 de setembro de 2015 12:40
  • Bom dia pessoal , cheguei a formatar o pc e instalar novamente o VS 2010 mas o problema continua, estou com windows 7 ultimate, porem ainda não tentei fazer como o amigo  Mr. GMSOFT indicou, irei tentar e dou um retorno, e a gente vai se falando ;)

    abraço pessoal


    d[^.^]b


    • Editado Thiago... _ segunda-feira, 14 de setembro de 2015 13:18 ..
    segunda-feira, 14 de setembro de 2015 13:15
  • Thiago,

    Testei em uma máquina com Win7 e VS2010. Nesta máquina tenho vários projetos Vb.net que rodam sem problemas. E pra minha surpresa também não funcionou.

    Chega a criar o arquivo porém inválido.

    ????

    segunda-feira, 14 de setembro de 2015 18:34
  • Alguma novidade?

    Seria problema nos servidores da CEF???

    terça-feira, 15 de setembro de 2015 00:18
  • O código que coloquei funciona em qualquer versão do windows  e baixa o arquivo sem problemas

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    terça-feira, 15 de setembro de 2015 12:35

  • Mr. GMSOFT,

    Teria como você converter em VB.net e postar aqui?

    Tentei converter mas não deu certo.

    Desde já, muito obrigado...

    terça-feira, 15 de setembro de 2015 20:43
  • Nesse link tem as duas versões C# e VB

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    quarta-feira, 16 de setembro de 2015 16:19
  • Mr. GMSOFT,

    Não consigo utilizar o exemplo no VB.net.

    Tentei converter o seu código, mas não consegui...

    Não consigo identificar qual o problema....

    Poderia ajudar?

    É preciso referenciar a DLL no scopo?

    Não consigo compreender o código.

    Desde já, obrigado.

    quarta-feira, 16 de setembro de 2015 16:56
  • Vou te explicar o que o código faz, isso é desde 19e bolinhas kkk e ate hoje o Visual Studio e algumas linguagens utiliza para baixar arquivos somente pela url.

    Eu converti para VB.NET nesse link
    <DllImport("urlmon.dll", CharSet := CharSet.Auto, PreserveSig := False)> _
    Private Shared Sub URLDownloadToFile(<MarshalAs(UnmanagedType.IUnknown)> pCaller As Object, <MarshalAs(UnmanagedType.LPTStr)> szURL As String, <MarshalAs(UnmanagedType.LPTStr)> szFileName As String, dwReserved As Int32, lpfnCB As IntPtr)
    End Sub
    
    
    Private Sub button2_Click(sender As Object, e As EventArgs)
    	URLDownloadToFile(Nothing, "http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip", Application.StartupPath + "\" + "D_lotfac.zip", 0, IntPtr.Zero)
    End Sub
    


    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    • Sugerido como Resposta Marques Junior quinta-feira, 17 de setembro de 2015 12:14
    • Marcado como Resposta Marcos SJ quinta-feira, 17 de setembro de 2015 20:21
    quinta-feira, 17 de setembro de 2015 11:23
  • Mr,

    Obrigado pelas dicas.

    Consegui resolver aqui usando a declaração imports, conforme detalho abaixo para quem tiver com a mesma dificuldadeUTILIZANDO  o VB.Net


    Imports System.Runtime.InteropServices Public Class Form1 <DllImport("urlmon.dll", CharSet:=CharSet.Auto, PreserveSig:=False)> _ Private Shared Sub URLDownloadToFile(<MarshalAs(UnmanagedType.IUnknown)> ByVal pCaller As Object, <MarshalAs(UnmanagedType.LPTStr)> ByVal szURL As String, <MarshalAs(UnmanagedType.LPTStr)> ByVal szFileName As String, ByVal dwReserved As Int32, ByVal lpfnCB As IntPtr) End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click URLDownloadToFile(Nothing, "http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_lotfac.zip", Application.StartupPath + "\" + "D_lotfac.zip", 0, IntPtr.Zero) End Sub End Class


    • Sugerido como Resposta Geraldo Ribeiro sexta-feira, 18 de setembro de 2015 00:38
    • Não Sugerido como Resposta Geraldo Ribeiro sexta-feira, 18 de setembro de 2015 00:39
    • Sugerido como Resposta Geraldo Ribeiro sexta-feira, 18 de setembro de 2015 00:39
    • Marcado como Resposta Marcos SJ sexta-feira, 13 de novembro de 2015 13:07
    sexta-feira, 18 de setembro de 2015 00:38