COMO: Automatizar o Internet Explorer para dados de formulário POST

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 311293
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Para uma versão deste artigo do Microsoft Visual Basic 6.0, consulte 167658.

NESTA TAREFA

Sumário
Um controlador de automação, como o Microsoft Visual Basic, pode automatizar o Microsoft Internet Explorer para enviar dados usando o método POST para um servidor HTTP (como o Microsoft IIS []). Este artigo explica como automatizar o Internet Explorer para realizar um POST de formulário de dados a partir de um aplicativo .NET Visual Basic. Embora os exemplos ilustram a automação de todo o aplicativo Internet Explorer, as mesmas técnicas podem aplicar para o controle ActiveX de navegador da Web quando ele está hospedado em um aplicativo.

back to the top

Para mais informações

Vários métodos estão disponíveis para enviar dados para um servidor HTTP. GET e POST estão os dois mais comuns. POST é normalmente usado para enviar dados de formulário a um servidor HTTP quando os dados excedem o limite máximo permitido transferência sobre o método GET. Esse limite é geralmente 2 quilobytes (KB).

Internet Explorer expõe a interface IWebBrowser(App) para controladores de automação. A interface IWebBrowser(App) tem um método Navigate . Na sintaxe de Interface Definition Language (IDL) (uma representação de universal do que ambos a sintaxe do Visual Basic e Visual C++ é derivada), o método Navigate se parece com o seguinte:
HRESULT Navigate([in] BSTR URL, [in] VARIANT* Flags,[in] VARIANT* TargetFrameName, [in] VARIANT* PostData,[in] VARIANT* Headers);				
por razões de realizar um POST, somente os parâmetros de URL, PostData e cabeçalhos são relevantes.

Para chamar navegar e POST dados do formulário para um servidor HTTP, o parâmetro URL deve especificar um endereço válido, o PostData parâmetro deve conter um SAFEARRAY de bytes e o parâmetro cabeçalhos deve conter um BSTR que contém o seguinte cabeçalho HTTP:
Content-Type: aplicativo/x-www-form-urlencoded
Este cabeçalho indica que os dados que está sendo lançados estão codificados conforme para as regras especificadas na especificação HTML.

Observe que o objeto de janela modelo de objeto de script do Internet Explorer tem um método navigate bem. Este método navigate só aceitará uma URL e não pode ser usado para dados POST em um servidor Web.

back to the top

Etapas para implementar técnica

  1. Salve o seguinte código de Active Server Pages (ASP) em um arquivo Navpost.asp, em um diretório em um servidor Microsoft Windows NT 4.0 ou Microsoft Windows 2000 executando o IIS versão 4.0 ou 5.0. O diretório deve ser reconhecido pelo IIS como uma raiz virtual com permissões de execução:
    <%@ Language=VBScript %> <HTML>      <%      cFlavor = Request("Flavor")      cName = Request("FName")      %>      <BODY>      Hello, <% =cName %>.      One scoop of <% =cFlavor %> coming right up!      </BODY> </HTML>					
  2. Inicie um novo projeto Standard EXE no Visual Basic. NET. O Form1 é criado por padrão. Adicione os seguintes controles para Form1:
       Object                     Name                  Caption   -------------------------------------------------------------------   Label                      lblName                First Name   Label                      lblFlavor              Flavor   CommandButton              cmdSubmit              Submit   ComboBox                   cboFlavor   TextBox                    txtName					
  3. No menu Project , clique em Add Reference , clique na guia COM , role para baixo até selecione Microsoft Internet Controls (Shdocvw.dll) e, em seguida, clique em Selecionar .
  4. Importe o namespace System.Text . A classe ASCIIEncoding fornece um método para converter cadeias de caracteres em uma matriz de bytes.
    Imports System.Text
  5. Insira o código a seguir dentro da classe Form1 do Form1.vb:
    Private Sub cmdSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click        Dim ie As SHDocVw.InternetExplorer        Dim vPost As Object        Dim vHeaders As Object        Dim cFlavor As String        Dim cParamFlavor As String        Dim cParamName As String        Dim cPostData As String        Dim cSeparator As String        cFlavor = cboFlavor.Items(cboFlavor.SelectedIndex)        cParamFlavor = "Flavor="        cSeparator = "&"        cParamName = "FName="        cPostData = cParamName & txtName.Text & cSeparator & cParamFlavor & cFlavor        vHeaders = "Content-Type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)   	'Convert the string to post to an array of bytes.        vPost = ASCIIEncoding.ASCII.GetBytes(cPostData)	'Create an instance of Internet Explorer and make it visible.        ie = New SHDocVw.InternetExplorer()        ie.Visible = True        ie.Navigate2("http://<web server>/navpost.asp", , , vPost, vHeaders)End SubPrivate Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load           cboFlavor.Items.Add("Vanilla")           cboFlavor.Items.Add("Chocolate")           cboFlavor.Items.Add("Strawberry")           cboFlavor.SelectedIndex = 0End Sub						
  6. Modificar o URL na chamada para navegar, conforme apropriado. Feche todas as instâncias em execução do Internet Explorer e, em seguida, no menu Executar , clique em Iniciar .
  7. Digite seu nome na caixa Nome, selecione um tipo e em seguida, clique em Enviar .

    Os dados de formulário Visual Basic serão lançados o servidor HTTP, e a resposta será exibida na janela do navegador visível.
back to the top
Referências

Para obter informações adicionais sobre como usar o WinInet para simular uma solicitação POST de formulário, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
165298COMO: Simulate uma solicitação POST de formulário usando WinInet
Para obter informações adicionais sobre como usar um identificador de origem de URL para simular uma solicitação POST de formulário, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
165800PostMon.exe demonstra como usar o moniker de URL para dados POST
311294COMO: Hospedar um controle WebBrowser no Visual Basic .NET para dados de formulário de POST
back to the top
kbwebbrowser kbpost

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 311293 - Última Revisão: 12/07/2015 08:05:27 - Revisão: 2.0

Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowtomaster KB311293 KbMtpt
Comentários