4

如果有人可以向我展示如何使用导航方法发送 POST 数据的好例子,我将非常高兴,可通过SHDocVw.IWebBrowserApp.

例如考虑。

我们应该去的页面是:http ://example.com/check.php

并且应该发送两个名为:用户名和密码的输入字段的值。

编辑

我正在尝试使用我的 C# 应用程序使用 Windows 操作系统上可用的本机 Internet Explorer 版本 7 或更高版本,向特定 URL 发送 HTTP 请求,使用 POST 方法将用户的用户名和密码传递到服务器端处理 HTTP 响应的页面。

使用IWebBrowserAppNavigate方法,我可以打开 Internet Explorer 的新窗口/实例并将其发送到特定页面(本地或 Web 中),如果指定,还可以发送 POST 数据和自定义标头。

但主要问题是我不知道如何将我的数据写入浏览器携带的 POST 请求中。

我会很感激帮助。

4

1 回答 1

9

我找到了如何命令 IE 打开网页并发送一些 POST 数据。

  • 将名为Microsoft Internet Explorer Controls的 COM 引用添加到项目中。

  • 然后创建post string用 分隔的字段及其值&,然后将其string转换为byte array

  • 最后只需要请求 IE 导航到url,并将 Post Data 转换为byte array,然后添加与我们提交表单时添加的相同的 Header 。

开始:

using SHDocVw; // Don't forget

InternetExplorer IEControl = new InternetExplorer();
IWebBrowserApp IE = (IWebBrowserApp)IEControl;
IE.Visible = true;

// Convert the string into a byte array
ASCIIEncoding Encode = new ASCIIEncoding();
byte[] post = Encode.GetBytes("username=fabio&password=123");

// The destination url
string url = "http://example.com/check.php";

// The same Header that its sent when you submit a form.
string PostHeaders = "Content-Type: application/x-www-form-urlencoded";

IE.Navigate(url, null, null, post, PostHeaders);

笔记:

试试这是否有效。不要忘记您的服务器端页面必须写入/回显名为:用户名和密码的 Post 字段。

PHP 代码示例:

<?php
echo $_POST['username'];
echo " ";
echo $_POST['password'];
?>

ASP 代码示例:

<%
response.write(Request.Form("username"))
response.write(" " & Request.Form("password"))
%>

页面将显示如下内容:

法比奥 123

于 2010-07-28T17:54:02.867 回答