Como automatizar o Internet Explorer para dados de formulário POST usando translation from VPE for Csharp Visual .NET ou Visual translation from VPE for Csharp 2005

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: 815724
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 311293.

NESTA TAREFA

Sumário
Um controlador de automação, como Microsoft Visual translation from VPE for Csharp, 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 Visual translation from VPE for Csharp .NET ou Visual translation from VPE for Csharp 2005. 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 HTTP servidor. 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);
para fins 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 no HTML especificação.

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

As seguintes etapas explicam como criar navpost.asp um arquivo ASP, em um diretório em um sistema operacional Microsoft Windows executando Services(IIS) de informações da Internet. O diretório deve ser reconhecido pelo IIS como uma raiz virtual com permissões de execução:
  1. Crie uma pasta chamada Navpostfolder .

    Observação Você deve ter o Internet Information Services (IIS) instalado no computador.
  2. Abra um editor de texto, como o bloco de notas e copie o seguinte código em um novo file:
    <%@ Language=VBScript %> <HTML>      <%      cFlavor = Request("Flavor")      cName = Request("FName")      %>      <BODY>      Hello, <% =cName %>.      One scoop of <% =cFlavor %> coming right up!      </BODY> </HTML>
  3. Salve o arquivo como Navpost.asp na pasta Navpostfolder .
  4. Clique em Iniciar , clique em Executar , digite inetmgr na caixa Abrir e, em seguida, clique em OK .
  5. No Gerenciador do IIS, expanda o nó do seu nome de computador no computador local.
  6. Expanda Sites .
  7. Clique Default Web Site com o botão direito do mouse, aponte para novo e clique em Diretório Virtual .
  8. No Bem-vindo à criação de diretório Virtual Assistente página, clique em Avançar .
  9. Digite navpost na caixa alias e em seguida, clique em Avançar .
  10. Clique em Procurar . Localize e selecione a pasta Navpostfolder que você criou e, em seguida, clique em OK .
  11. Clique em Avançar , clique para selecionar Execute(such as ISAPI applications or CGI) e em seguida, clique em Avançar .
  12. Clique em Concluir .
As seguintes etapas explicam como automatizar o Internet Explorer para realizar um POST de formulário de dados a partir de um aplicativo .NET translation from VPE for Csharp Visual:
  1. No Visual Studio .NET ou no Visual Studio 2005, inicie um novo aplicativo do Windows usando Visual translation from VPE for Csharp .NET ou Visual translation from VPE for Csharp 2005. o Form1 é criado por padrão.
  2. Do Toolbox , arraste os seguintes 5 controles para Form1 e, em seguida, defina a propriedade nome e a propriedade Text como indicado na tabela a seguir:
    ControleNomeTexto
    -----------------------------------
    Rótulo lblName Nome
    Rótulo lblFlavor Tipo
    CommandButton cmdSubmit Enviar
    ComboBox cboFlavor
    TextBox txtName
  3. No menu Project , clique em Adicionar referência .
  4. Clique na guia COM , clique para selecionar o Microsoft Internet Controls (Shdocvw.dll), clique em Selecionar e, em seguida, clique em OK .

    Observação No Visual Studio 2005, você não tem clique em Selecionar .
  5. No menu Exibir , clique em código e, em seguida, adicione a instrução a seguir na parte superior da janela de código do Form1:
    using System.Text;
  6. Adicione o seguinte código ao evento Click button:
       SHDocVw.InternetExplorer ie;   object vPost,vHeaders,vFlags,vTargetFrame,vUrl;   string cFlavor,cParamFlavor,cParamName,cPostData,cSeparator ;   vFlags=null;   vTargetFrame=null;   vUrl="http://localhost/navpost/navpost.asp ";   cFlavor = cboFlavor.Items[cboFlavor.SelectedIndex].ToString();   cParamFlavor = "Flavor=";   cSeparator = "&";   cParamName = "FName=";   cPostData = cParamName + txtName.Text + cSeparator + cParamFlavor + cFlavor;   vHeaders = "Content-Type: application/x-www-form-urlencoded" + Convert.ToChar(10) + Convert.ToChar(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(ref vUrl ,ref vFlags, ref vTargetFrame ,ref vPost,ref vHeaders);	
  7. Adicione o seguinte código ao evento Load do Form1 :
    cboFlavor.Items.Add("Vanilla");cboFlavor.Items.Add("Chocolate");cboFlavor.Items.Add("Strawberry");cboFlavor.SelectedIndex = 0;
  8. No menu Debug , clique em Iniciar .
  9. Digite o nome na caixa, selecione um tipo na lista e, em seguida, clique em Enviar . Os dados de translation from VPE for Csharp Visual formulário será lançado 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, 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 informações adicionais, 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

313068COMO: Hospedar um controle WebBrowser no .NET translation from VPE for Csharp Visual para dados de formulário de POST
back to the top

Propriedades

ID do Artigo: 815724 - Última Revisão: 12/11/2006 21:02:42 - Revisão: 2.4

Microsoft Visual C# .NET 2003 Standard Edition, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2005 Express Edition

  • kbmt kbwebserver kbwebbrowser kbhttp kbwindowsforms kbforms kbhowtomaster KB815724 KbMtpt
Comentários