如何在C#代码中POST提交表单

hxwangcong 2009-08-27 02:02:14
我现在需要这样一个功能:

在C#代码里通过POST方式提交一个表单

效果要等同于用form+submit的效果,就是提交完了以后,要跳转到目标页面。
...全文
2458 34 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxig20077 2011-01-11
  • 打赏
  • 举报
回复
lz 我也用32楼的方法 怎么没用哦 我是用那个来登录的
hxwangcong 2010-11-22
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 xiaxue0525 的回复:]
===============转====================
怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数据到网站等。
假如某个页面有个如下的表单(Form):
<form name="form1" action="http://www.here.com/login.asp" method="post"……
[/Quote]
嗯,这个是正解。
大光呢 2010-09-25
  • 打赏
  • 举报
回复
===============转====================
怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数据到网站等。
假如某个页面有个如下的表单(Form):
<form name="form1" action="http://www.here.com/login.asp" method="post">
<input type="text" name="userid" value="">
<input type="password" name="password" value="">
</form>

从表单可看到表单有两个表单域,一个是userid另一个是password,所以以POST形式提交的数据应该包含有这两项。
其中POST的数据格式为:
表单域名称1=值1&表单域名称2=值2&表单域名称3=值3……
要注意的是“值”必须是经过HTMLEncode的,即不能包含“<>=&”这些符号。

本例子要提交的数据应该是:
userid=value1&password=value2

用C#写提交程序:

string strId = "guest";
string strPassword= "123456";

ASCIIEncoding encoding=new ASCIIEncoding();
string postData="userid="+strId;
postData += ("&password="+strPassword);

byte[] data = encoding.GetBytes(postData);

// Prepare web request...
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create("http://www.here.com/login.asp");

myRequest.Method = "POST";
myRequest.ContentType="application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream=myRequest.GetRequestStream();

// Send the data.
newStream.Write(data,0,data.Length);
newStream.Close();

// Get response
HttpWebResponse myResponse=(HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(),Encoding.Default);
string content = reader.ReadToEnd();
Console.WriteLine(content);
大光呢 2010-09-25
  • 打赏
  • 举报
回复
LZ的意思是要在后台的纯C#代码区独立实现POST到指定页面的功能。跟前台的ASP.NET代码没关系的。
用httpwebrequest来实现。
hxwangcong 2010-04-12
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 ainidewangziguilai 的回复:]
LZ我有这个代码,还要不?
[/Quote]

要啊,能发上来不?
ainidewangziguilai 2010-03-29
  • 打赏
  • 举报
回复
LZ我有这个代码,还要不?
ximing214 2010-03-06
  • 打赏
  • 举报
回复
楼主我懂你意思,可惜我现在也在找这功能.
有结果了一起分享吧.
zhougonghenbang 2009-09-10
  • 打赏
  • 举报
回复
Mark.
hxwangcong 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 lk829 的回复:]
楼主表达清楚意思在来问吧
[/Quote]

我的意思已经很清楚了,就是用c#代码实现通过POST提交表单。因为我在提交表单之前要写自己的逻辑,而且提交目标是别人的站点

哪里不清楚?

如果你不知道如何解决,你别瞎嚷嚷
hxwangcong 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 liaoxing168 的回复:]
貌似你连什么是C#都没弄清楚?C#是一门语言,ASP.NET和WINFROM都是用C#编写的,你想说的是用WINFROM实现吧?
[/Quote]

呵呵,你才没弄清楚C#是什么呢

谁规定ASP.NET提交表单只能用FORM了?

我就是想在ASP.NET中用C#实现,不可以吗?我现在就有这样的功能要求
lk829 2009-09-10
  • 打赏
  • 举报
回复
楼主表达清楚意思在来问吧
  • 打赏
  • 举报
回复
貌似你连什么是C#都没弄清楚?C#是一门语言,ASP.NET和WINFROM都是用C#编写的,你想说的是用WINFROM实现吧?
hxwangcong 2009-09-10
  • 打赏
  • 举报
回复
我算服了,坛子上就没有理解能力好点的人么?

20楼,我的要求是用C#代码实现

21楼,我是要提交到另外一个站点
脱缰的牛 2009-09-07
  • 打赏
  • 举报
回复
你写个提交的方法。然后在pag_Load里面
这样
if (Request.HttpMethod == "POST")
{
提交的方法();
}
flyerwing 2009-09-07
  • 打赏
  • 举报
回复

把FORM里的RUNAT=“SERVER”;
取掉,ACTION 等都加上。
hxwangcong 2009-09-07
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 chen_lichao 的回复:]
简单噶
具体页面给我
我帮你写代码
[/Quote]

你可以写个例子
caofan520 2009-09-02
  • 打赏
  • 举报
回复
简单噶
具体页面给我
我帮你写代码
caofan520 2009-09-02
  • 打赏
  • 举报
回复
简单噶
具体页面给我
我帮你写代码
hxwangcong 2009-09-02
  • 打赏
  • 举报
回复
大家请看清楚我的要求,是在C#代码里通过POST方式提交表单,所以在HTML里写FORM肯定是不行
hxwangcong 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zming 的回复:]
Winform还是ASP.NET?两者方式不同。

Winform使用WebClient
ASP.NET使用Javascript 参考 http://www.cnblogs.com/angushine/archive/2008/07/20/1247223.html
[/Quote]

我这里需要先写一定的逻辑代码,再提交。客户端脚本不行
加载更多回复(14)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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