由于DZ的附件上传实在麻烦,向自己写个批量附件上传工具,于是就用C#写一个
有两个方法:
// 用来登陆,并保存Cookie
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 referer, string postdata)
{
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
myHttpWebRequest.Referer = referer;
myHttpWebRequest.CookieContainer = myCookieContainer;
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=16&extra=page%3D1&topicsubmit=yes", "http://test.cn/post.php?action=newthread&fid=16&extra=page%3D1", @"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\新建文件夹\victory.gif'");
但发表时总是会提示“您的请求来路不正确或验证字串不符,无法提交。如果您安装了某种默认屏蔽来路信息的个人防火墙软件(如 Norton Internet Security),请设置其不要禁止来路信息后再试。”请文应该怎么解决?