Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ronaldo Faria Storck Eler

Captcha + cookie

Recommended Posts

Olá, não sou bom com plataforma .NET, ainda trabalho com ASP Clássico, gostaria de saber se tem como converter este código VB.NET em uma página asp.net? por onde eu começo?

 

Imports System.Net
Imports System.Text
Imports System.IO

Public Class Form1

   Private PackCookies As New CookieContainer()

   Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

       CarregarCaptcha()

   End Sub

   Private Sub CarregarCaptcha()

       TxtNome.Text = "-"
       TxtStatus.Text = "-"

       Dim request As HttpWebRequest = HttpWebRequest.Create("http://www.receita.fazenda.gov.br/scripts/srf/intercepta/captcha.aspx?opt=image")
       request.ContentType = "application/x-www-form-urlencoded"
       request.CookieContainer = New CookieContainer()

       Dim response As HttpWebResponse = request.GetResponse()

       For Each tempCookie As Net.Cookie In response.Cookies

           If tempCookie.Name = "cookieCaptcha" Then
               PackCookies.Add(tempCookie)
           End If

       Next

       Dim stream As IO.Stream = response.GetResponseStream()
       CampoPicture.Image = Image.FromStream(stream)

   End Sub

   Private Sub BtnConsultar_Click(sender As System.Object, e As System.EventArgs) Handles BtnConsultar.Click

       Dim CCPF, CCaptcha As String

       CCPF = CampoCPF.Text
       CCPF = CCPF.Replace(".", "")
       CCPF = CCPF.Replace(",", "")
       CCPF = CCPF.Replace("-", "")

       CCaptcha = CampoCaptcha.Text

       If CCPF = "" Then

           MessageBox.Show("Preencha o CPF!")

       ElseIf CCaptcha = "" Then

           MessageBox.Show("Preencha o Captcha!")

       Else

           Dim byteArray As Byte() = Encoding.UTF8.GetBytes("txtCPF=" & CCPF & "&idLetra=" & CCaptcha & "&Enviar=Consultar")
           Dim request As HttpWebRequest = HttpWebRequest.Create("http://www.receita.fazenda.gov.br/aplicacoes/atcta/cpf/ConsultaPublica.asp")

           request.ContentType = "application/x-www-form-urlencoded"
           request.CookieContainer = PackCookies
           request.Method = "POST"
           request.ContentLength = byteArray.Length

           Dim dataStream As Stream = request.GetRequestStream()
           dataStream.Write(byteArray, 0, byteArray.Length)
           dataStream.Close()

           Dim response As WebResponse = request.GetResponse()

           dataStream = response.GetResponseStream()
           Dim reader As New StreamReader(dataStream)
           Dim responseFromServer As String = reader.ReadToEnd()

           Dim webBrowser As New WebBrowser()

           Dim myHTML As String = responseFromServer

           webBrowser.DocumentText = myHTML
           webBrowser.ScriptErrorsSuppressed = True

           AddHandler webBrowser.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf ManipulaRetornoRF)

           reader.Close()
           dataStream.Close()
           response.Close()

       End If

   End Sub

   Private Sub ManipulaRetornoRF(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)

       Dim webBrowserForPrinting As WebBrowser = CType(sender, WebBrowser)
       Dim NNome, NStatus, FNome, FStatus As String
       Dim ANome, AStatus As Array

       Dim doc As HtmlDocument = webBrowserForPrinting.Document

       If doc.Body.InnerHtml.Contains("Comprovante emitido") Then


           NNome = doc.GetElementsByTagName("span").Item(5).InnerHtml
           ANome = NNome.Split(":")
           FNome = Trim(ANome(1))

           NStatus = doc.GetElementsByTagName("span").Item(6).InnerHtml
           AStatus = NStatus.Split(":")
           FStatus = Trim(AStatus(1))

           TxtNome.Text = FNome
           TxtStatus.Text = FStatus

       Else

           MessageBox.Show("Dados inválidos!")

           TxtNome.Focus()
           CarregarCaptcha()

       End If

   End Sub


   Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click

       Sobre.ShowDialog()

   End Sub
End Class

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, se você tem conhecimento das duas linguagens, basta você começar olhando o que cada parte do seu código faz e procurando códigos parecidos no C#. É que nem transpor uma aplicação do Windows.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.