Cómo publicar datos en un servidor web usando wpf webbrowser

Quiero obtener datos de una base de datos y usarlos para iniciar sesión en un sitio web.

Tengo una página wpf que tiene un control de navegador web. y tengo este código que inicia sesión en el sitio web que está escrito en php:

<?php $user = $_GET['u']; $pass = $_GET['p']; echo ""; echo ""; ?>

¿Cómo puedo hacer esto en wpf? Por lo que puedo entender, necesito crear un html y publicarlo en el sitio.

Mis preguntas:

1- ¿Cómo puedo crear ese html en el código?

2- ¿Cómo puedo enviarlo automáticamente al sitio (suponiendo que estoy haciendo esto en el constructor de un control de usuario wpf).

Por lo que yo entiendo, su objective es iniciar sesión y mantener la sesión activa dentro de WebBrowser . Si es así, tienes algunas opciones:

  • Primero, navegue en WebBrowser a www.asite.net , para establecer la sesión.

  • A continuación, obtenga el control WebBrowser ActiveX subyacente y utilice el método IWebBrowser2::Navigate2 ; tiene el parámetro PostData que permite realizar una solicitud HTTP POST.

  • O bien, inyecte y ejecute JavaScript que usaría XHR para publicar el formulario de la forma AJAX.

  • O bien, use WebBrowser.Document como dynamic para crear un elemento de form oculto, rellenarlo y enviarlo, de la misma manera que lo haría con JavaScript .

  • O bien, use el objeto COM XMLHTTP para enviar una solicitud POST, comparte la sesión con WebBrowser .

  • También puede usar alguna API UrlMon de bajo nivel para enviar una solicitud POST.

Actualizado , aquí hay un ejemplo de creación y envío de un:

 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.Loaded += MainWindow_Loaded; } void MainWindow_Loaded(object sender, RoutedEventArgs e) { NavigatedEventHandler handler = null; handler = delegate { this.webBrowser.Navigated -= handler; dynamic document = this.webBrowser.Document; var form = document.createElement("form"); form.action = "http://requestb.in/tox7drto"; form.method = "post"; var input = document.createElement("input"); input.type = "text"; input.name = "name_1"; input.value = "value_1"; form.appendChild(input); input = document.createElement("input"); input.type = "submit"; form.appendChild(input); document.body.appendChild(form); input.click(); }; this.webBrowser.Navigated += handler; this.webBrowser.Navigate("about:blank"); } } 

Use el espacio de nombres System.Net , particularmente los objetos WebRequest y WebResponse .

Vea esta respuesta anterior, debe comenzar:

Cómo rellenar programáticamente un formulario y publicar una página web