求助,就结了我好久的问题 好久好久。现在登录能成功 至于有没有取回有效的cookie那就不知道了 发布文章的时候总是返回失败 并返回了登录界面的信息。 怎么改?
Encoding enc = Encoding.GetEncoding("gb2312");
CookieContainer cc = new CookieContainer();
Thread t;
public void dedelogin()//登录
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://127.0.0.1/dede/login.php");
myReq.Accept = "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */*";
myReq.Method = "post";
myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
myReq.ContentType = "application/x-www-form-urlencoded";
myReq.Referer = "http://www.jobqn.com";
string s = "gotopage=%2Fdedexiake%2F&dopost=login&adminstyle=newdedecms&userid=admin&pwd=admin&sm1=%B5%C7%C2%BC";
byte[] arrB = enc.GetBytes(s); if (cc.Count == 0)
{
myReq.CookieContainer = new CookieContainer();
cc = myReq.CookieContainer;
}
else
{
myReq.CookieContainer = cc;
}
Stream outStream = myReq.GetRequestStream();
outStream.Write(arrB, 0, arrB.Length);
outStream.Close();
HttpWebResponse myResp = null;
try
{
//接收HTTP做出的响应
myResp = (HttpWebResponse)myReq.GetResponse();
}
catch {richTextBox1.Text += "响应失败\r\n";}
Stream ReceiveStream = myResp.GetResponseStream();
StreamReader readStream = new StreamReader(ReceiveStream, enc);
Char[] read = new Char[256];
int count = readStream.Read(read, 0, 256);
string str = null;
while (count > 0)
{
str += new String(read, 0, count);
count = readStream.Read(read, 0, 256);
} myReq.CookieContainer = cc;
foreach (Cookie cookie in myResp.Cookies)
{
cc.Add(cookie);
} readStream.Close();
myResp.Close();
if (str.Contains("转向"))
{
richTextBox1.Text += "登录成功\r\n";
Thread.Sleep(1000);
dedefatie();
}
else { richTextBox1.Text += "登录失败\r\n"; } }
public void dedefatie()
{
string content = "";
string con = File.ReadAllText(@"data/dede.txt", Encoding.Default);
content = con.Replace("[标题]", tb_title.Text);
content = content.Replace("[内容]",tb_nr.Text); byte[] arrB = enc.GetBytes(content); HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://127.0.0.1/dede/article_add.php");
myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)";
myReq.CookieContainer = cc;//用证书
myReq.Method = "post";
myReq.ContentType = "multipart/form-data; boundary=-----------------------------7dbff3980c74";
myReq.Referer = " http://127.0.0.1";
myReq.ContentLength = arrB.Length; Stream outStream = myReq.GetRequestStream();
outStream.Write(arrB, 0, arrB.Length);
outStream.Close();
WebResponse myResp = null; //接收HTTP做出的响应
myResp = myReq.GetResponse();
Stream ReceiveStream = myResp.GetResponseStream();
StreamReader readStream = new StreamReader(ReceiveStream, enc);
Char[] read = new Char[256];
int count = readStream.Read(read, 0, 256);
string str = null;
while (count > 0)
{
str += new String(read, 0, count);
count = readStream.Read(read, 0, 256);
} if (str != "")
{
readStream.Close();
myResp.Close();
textBox2.Text = str;
if (str.Contains("成功"))
{
richTextBox1.Text += "发布成功\r\n"; }
else
{
richTextBox1.Text += "发布失败了\r\n";
} }
else
{
richTextBox1.Text += "发布失败咯\r\n";
} t.Abort(); }
private void button1_Click(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
t = new Thread(dedelogin);
t.Start();
}
Encoding enc = Encoding.GetEncoding("gb2312");
CookieContainer cc = new CookieContainer();
Thread t;
public void dedelogin()//登录
{
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://127.0.0.1/dede/login.php");
myReq.Accept = "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */*";
myReq.Method = "post";
myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
myReq.ContentType = "application/x-www-form-urlencoded";
myReq.Referer = "http://www.jobqn.com";
string s = "gotopage=%2Fdedexiake%2F&dopost=login&adminstyle=newdedecms&userid=admin&pwd=admin&sm1=%B5%C7%C2%BC";
byte[] arrB = enc.GetBytes(s); if (cc.Count == 0)
{
myReq.CookieContainer = new CookieContainer();
cc = myReq.CookieContainer;
}
else
{
myReq.CookieContainer = cc;
}
Stream outStream = myReq.GetRequestStream();
outStream.Write(arrB, 0, arrB.Length);
outStream.Close();
HttpWebResponse myResp = null;
try
{
//接收HTTP做出的响应
myResp = (HttpWebResponse)myReq.GetResponse();
}
catch {richTextBox1.Text += "响应失败\r\n";}
Stream ReceiveStream = myResp.GetResponseStream();
StreamReader readStream = new StreamReader(ReceiveStream, enc);
Char[] read = new Char[256];
int count = readStream.Read(read, 0, 256);
string str = null;
while (count > 0)
{
str += new String(read, 0, count);
count = readStream.Read(read, 0, 256);
} myReq.CookieContainer = cc;
foreach (Cookie cookie in myResp.Cookies)
{
cc.Add(cookie);
} readStream.Close();
myResp.Close();
if (str.Contains("转向"))
{
richTextBox1.Text += "登录成功\r\n";
Thread.Sleep(1000);
dedefatie();
}
else { richTextBox1.Text += "登录失败\r\n"; } }
public void dedefatie()
{
string content = "";
string con = File.ReadAllText(@"data/dede.txt", Encoding.Default);
content = con.Replace("[标题]", tb_title.Text);
content = content.Replace("[内容]",tb_nr.Text); byte[] arrB = enc.GetBytes(content); HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://127.0.0.1/dede/article_add.php");
myReq.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)";
myReq.CookieContainer = cc;//用证书
myReq.Method = "post";
myReq.ContentType = "multipart/form-data; boundary=-----------------------------7dbff3980c74";
myReq.Referer = " http://127.0.0.1";
myReq.ContentLength = arrB.Length; Stream outStream = myReq.GetRequestStream();
outStream.Write(arrB, 0, arrB.Length);
outStream.Close();
WebResponse myResp = null; //接收HTTP做出的响应
myResp = myReq.GetResponse();
Stream ReceiveStream = myResp.GetResponseStream();
StreamReader readStream = new StreamReader(ReceiveStream, enc);
Char[] read = new Char[256];
int count = readStream.Read(read, 0, 256);
string str = null;
while (count > 0)
{
str += new String(read, 0, count);
count = readStream.Read(read, 0, 256);
} if (str != "")
{
readStream.Close();
myResp.Close();
textBox2.Text = str;
if (str.Contains("成功"))
{
richTextBox1.Text += "发布成功\r\n"; }
else
{
richTextBox1.Text += "发布失败了\r\n";
} }
else
{
richTextBox1.Text += "发布失败咯\r\n";
} t.Abort(); }
private void button1_Click(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;
t = new Thread(dedelogin);
t.Start();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货