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

时间:2014-03-26 17:52:54

标签: c# php wpf webbrowser-control

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

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

<form action='http://www.asite.net/index.php' method='post' name='frm'>
<?php
$user = $_GET['u'];
$pass = $_GET['p'];
echo "<input type='text' name='user' value='$user'>";
echo "<input type='text' name='pass' value='$pass'>";
?>
<input type='submit' name='submit' value='submit'>
</form>

我怎样才能在wpf中执行此操作?据我所知,我需要创建一个HTML并将其发布到网站。

我的问题:

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

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

2 个答案:

答案 0 :(得分:2)

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

已更新,以下是创建和提交:

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

答案 1 :(得分:0)

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

看到上一个答案,它应该可以帮到你:

How to programmatically fill a form and post a web page