C# - 如何提交2种不同的表格并下载PDF文件

时间:2017-03-15 17:53:07

标签: c# webclient interaction

我正在尝试提交表单(通过WebClient - C #WindowsForms),但我还没有得到它。

我的HTTP页面序列是:Username_Form> Password_Form>下载PDF文件

<!-- Username_Form.html -->
<form ... action="/AgenciaWeb/autenticar/autenticar.do">
    <input type="text" name="username" />
    <input type="submit" value="Continue" />
</form>

<!-- Password_Form.html -->
<form ... action="/AgenciaWeb/autenticar/validarSenha.do">
    <input type="password" name="password" />
    <input type="submit" value="Login" />
</form>

<!-- Password_Form.html -->
<div>
    <a href="PDF_download.pdf">Download</a>
</div>

所以我应该填写第一页中的所有表格,将其重定向到第二页,以填写所有表格,然后获取最终页面并开始下载我的PDF文件。

问题是我没有收到第一页的提交。我在做:

private void button1_Click(object sender, EventArgs e)
        {
            var url = "http://test_something.com:8080/AgenciaWeb/autenticar/autenticar.do";

            using (var client = new WebClient())
            {
                var values = new NameValueCollection();
                values["username"] = "user01";

                var response = client.UploadValues(url, "POST", values);

                var responseString = Encoding.Default.GetString(response);

                Console.WriteLine(responseString);
            }

        }

然而我的回应串&#39;是填写所有表单的完全相同的页面(输入类型=&#34;文字&#34;名称=&#34;用户名&#34;值=&#34; user01&#34; )和提交不会发生,就像我看不到或与第二页互动( Password_Form.html )。

我遗失了哪些错误?

1 个答案:

答案 0 :(得分:0)

您可能需要检查响应并查看它是否返回302状态。如果是,那么您可以转到下一页,在服务器端成功设置了值。你在这做什么要求你手动跟踪重定向。