实用C#制作Discuz发帖

 private string Post(string url, string postdata)
{
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
myHttpWebRequest.ContentLength = postdata.Length;
myHttpWebRequest.Method = "POST";
myHttpWebRequest.CookieContainer = myCookieContainer;

Stream myRequestStream = myHttpWebRequest.GetRequestStream();
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
myStreamWriter.Write(postdata);

myStreamWriter.Close();
myRequestStream.Close();

HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();

myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);

Stream myResponseStream = myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));

string outdata = myStreamReader.ReadToEnd();

myStreamReader.Close();
myResponseStream.Close();

return outdata;

}

private string Post2(string url, string postdata)
{
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.CookieContainer = myCookieContainer;//*
//刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
myHttpWebResponse.Cookies = myCookieContainer.GetCookies(myHttpWebRequest.RequestUri);
Stream myResponseStream = myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("gb2312"));
string outdata = myStreamReader.ReadToEnd();
myStreamReader.Close();
myResponseStream.Close();
return outdata;
}
问题补充:发帖代码:
richTextBox1.Text = Post("http://test.cn/logging.php?action=login&loginsubmit=true", "formhash=f0adc463&cookietime=2592000&loginfield=username&username=admin&password=admin&userlogin=%B5%C7%C2%BC");
richTextBox1.Text = Post2("http://test.cn/post.php?action=newthread&fid=2&extra=&topicsubmit=yes", @"formhash=7219d72f&isblog=&frombbs=1&readperm=0&price=0&subject=测试标题&iconid=0&message=测试内容&attach[]=&filename=&localid[]=&attachperm[]=0&attachprice[]=0&attachdesc[]=&attach[]=&filename='C:/Documents and Settings/Administrator/My Documents/新建文件夹/1.jpg'");

测试后登陆能够成功,但是发帖会出现“您的请求来路不正确或验证字串不符,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。”的错误,请问怎么解决?
0.2版发布:压缩包无密码 在网上搜罗的很长时间,搞到很多号称ASP.NET的论坛源码,确实有很多不错的。 为什么说“号称”呢?大家都知道,ASP.NET的最大优势是界面和代码分离,脱离了ASP的面条式代码,难以读懂和维护,但ASP.NET兼容ASP,只要将ASP的扩展名改为ASPX,基本可以正常运行,所以有很多这类代码被简单的修改一下就用上了ASP.NET的头衔。 没办法,自己写罗! 功能简介:可以发贴,回帖,很简单,用到的技术也不多: SQL数据库操作,查询/提交/修改; 页面参数传递; TREE应用,就是左边的树型目录; DATAGRID显示数据/排序/链接; DATELIST显示数据/图片; 新增功能: 搜索/置顶/精华 贴的设置 其实就怎么简单,就是将一些小技巧混合应用。 开放源码有两个目的: 1.供大家参考和指正; 2.希望大家能够在此基础上做些修改,尤其是美工方面,本人美工特差,望有能力的同僚自告奋勇,帮我做一下美工。 这个论坛将不断升级,希望这个过程能成为大家学习C#的一个绝好机会!谢谢关注! 论坛地址:http://www.kaer.cn/default.aspx ->技术论坛 代码下载:http://www.kaer.cn/default.aspx ->下载基地->ASP.NET相关 下一版将仅提供给美工设计师,友谊合作的到下面的地址报名: 论坛地址:http://www.kaer.cn/default.aspx ->技术论坛-》论坛社区-》论坛发展-》论坛维护志愿者报名
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值