HttpWebRequest虚拟按钮单击 [英] HttpWebRequest virtual button click
本文介绍了HttpWebRequest虚拟按钮单击的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有带有表单,输入和sumbit按钮的html-php网页.对于html请求,我试图填充一些字段并按一个按钮,但是我不能. 这是C#代码:
I have my html-php web page with form, inputs and sumbit button. With html request I\m trying to fill some fields and press a button, but I can't. Here is C# code:
public static string PostData(string data)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/request.php"); //http://businesslist.com/search/clients/?m=userspace&d=addclassified
request.Method = "POST";
request.AllowAutoRedirect = true;
request.ContentType = "application/x-www-form-urlencoded";
byte[] EncodedPostParams = Encoding.UTF8.GetBytes(data);
request.ContentLength = EncodedPostParams.Length;
request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
request.GetRequestStream().Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string str = new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
return str;
}
static void Main(string[] args)
{
string data = PostData("name=" + HttpUtility.UrlEncode("lol") + "&btn=Clicked");
Console.WriteLine(data);
Console.ReadLine();
}
和2个php文件: request.php
and 2 php files: request.php
<html>
<head>
<title>HTTP Request</title>
</head>
<body>
<form action ="http://localhost/response.php" method ="POST">
<input type="text" name="name">
<input type="password" name="pass">
<select name="country">
<option value="-1" selected="selected">Select State/Country</option>
<option value="82">Select 1</option>
<option value="83">Select 2</option>
</select>
<input type="submit" name="btn">
</form>
</body>
</html>
response.php
response.php
<?php
$data = $_POST["name"];
echo $data;
?>
此处链接到我的网站
那么,我该如何按下该按钮?
So, how I can press this button?
推荐答案
我已经在 LINQPad 中尝试了此方法,并且有效:
I've tried this in LINQPad and it worked:
void Main()
{
var request = (HttpWebRequest)WebRequest.Create("http://128.75.49.209/response.php");
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
using (var stream = request.GetRequestStream())
{
var buffer = Encoding.UTF8.GetBytes("name=asd&pass=asd&country=82&btn=Submit+Query");
stream.Write(buffer,0,buffer.Length);
}
var response = (HttpWebResponse)request.GetResponse();
string result = String.Empty;
using (var reader = new StreamReader( response.GetResponseStream()))
{
result = reader.ReadToEnd();
}
Console.WriteLine(result);
}
问题是您在代码中使用了request.php
而不是response.php
.
The problem is that you used request.php
instead of response.php
in your code.
这篇关于HttpWebRequest虚拟按钮单击的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文