如何使用wpf webbrowser将数据发布到Web服务器

我想从数据库中获取数据并使用它来登录用户到网站。

我有一个wpf页面,其中包含Web浏览器控件。 我有这个代码,用户登录到用PHP编写的网站:

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

我怎么能在wpf中这样做? 据我所知,我需要创建一个HTML并将其发布到网站。

我的问题:

1-如何在代码中创建这样的html?

2-如何自动将其提交到站点(假设我在wpf用户控件的构造函数上执行此操作)。

据我了解,您的目标是登录并在WebBrowser保持会话活动。 如果是这样,您有几个选择:

  • 首先,将WebBrowser导航到www.asite.net ,以建立会话。

  • 然后获取底层的WebBrowser ActiveX控件并使用IWebBrowser2::Navigate2方法,它具有允许执行HTTP POST请求的PostData参数。

  • 或者, 注入并执行一些JavaScript , 这些JavaScript将使用XHR以AJAX方式发布表单。

  • 或者,使用WebBrowser.Document作为dynamic来创建隐藏的form元素,填充并提交它,就像使用JavaScript

  • 或者,使用COM XMLHTTP对象发送POST请求,它与WebBrowser共享会话。

  • 您还可以使用一些低级UrlMon API来发送POST请求。

更新 ,以下是创建和提交的示例:

 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"); } } 

使用System.Net命名空间,尤其是WebRequestWebResponse对象。

看到之前的答案,它应该让你开始:

如何以编程方式填写表单并发布网页