【简单问题】应该如何向网站Post数据

V-Far 2011-07-21 04:57:43
通过HttpWebRequest获取Login页面,得到下面的代码,

<html>
<head>
<title></title>
</head>

<body>
<form action="Login.aspx" method="post">
<input id="name" type="text" value="" />
<input id="pwd" type="text" value="" />
</form>
</body>
</html>

上面html的源码,其中name和pwd的value都是自己要填上去的,就是要登录的帐号密码,这个很简单。replace一下字串就行了。然后要将赋值过后的这个html源码页面Post到对应的Login.aspx页中.
Login.aspx中会自动去获取name和pwd的值并检查有没有权限,然后返回数据。

现在是怎么将这个页面POST到Login.aspx页面中去。没写过Winform,不是很懂。
...全文
131 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmyjd 2011-07-24
  • 打赏
  • 举报
回复
你去下载wildpackets,用它分析http的数据,然后再用httpwebrequest类模拟浏览器发包.
hack8 2011-07-24
  • 打赏
  • 举报
回复
前几天没有上来,给你一个代码参考,strURL是你要链接的站点URL,CookieHeader是Cookie,location在很多情况下没有什么用,这个是在获取服务器返回值时,如果服务器把location改变了,这个时候需要获取此location,然后跳转到该location的。
public static string GetMethod_Start(string strURL, string cookieHeader, ref string location)
{
string strResult = "";
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(strURL);
myHttpWebRequest.AllowAutoRedirect = true;
myHttpWebRequest.KeepAlive = true;
myHttpWebRequest.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*";

myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; GTB6; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";

myHttpWebRequest.Method = "GET";
myHttpWebRequest.Headers.Add("cookie:" + cookieHeader);
HttpWebResponse res = (HttpWebResponse)myHttpWebRequest.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream());
strResult = sr.ReadToEnd();
sr.Close();
location = res.Headers["location"];


return strResult;

}
sxldfang 2011-07-22
  • 打赏
  • 举报
回复
V-Far 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hack8 的回复:]

利用HttpWebRequest实现,提交的方法为post,这样就可以了。
[/Quote]给点代码看看行不?
solohac 2011-07-22
  • 打赏
  • 举报
回复
先wireShark抓包(或者httpwatch),分析需要发送的数据,一般登陆不会只是账号密码这么少信息
使用HttpWebRequest即可

使用的时候注意cookie,cookiecontainer请使用4.0以上版本
hack8 2011-07-21
  • 打赏
  • 举报
回复
利用HttpWebRequest实现,提交的方法为post,这样就可以了。
V-Far 2011-07-21
  • 打赏
  • 举报
回复
换句话说.就是网页实现的东西.要用软件来执行...
但是调用的还是网页对应的页面
V-Far 2011-07-21
  • 打赏
  • 举报
回复
winform.不调用WebBrowser控件.纯后台代码Post上去.
所以js一切都无效.所以要使用C#代码来代替js功能.
正式的时候还要代替其他js代码功能执行...

所以问的是:
使用C#的winform代码如何Post
骑猪看海 2011-07-21
  • 打赏
  • 举报
回复
骑猪看海 2011-07-21
  • 打赏
  • 举报
回复
这位同学说的不是很明白,如果是JS提交用form .submit();不就可以了
Question999 2011-07-21
  • 打赏
  • 举报
回复
不能再submit了 如果单个按钮再submit 那么就是2次post了 form一次 button一次
xuexiaodong2009 2011-07-21
  • 打赏
  • 举报
回复
js提交以下不行吗 $("#LoginForm").submit();

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧