Доброго времени суток.
Пишу программу, для работы с двигателем форума вида "vBulliten 3.8.8", и пытаюсь удалить раздел, до удаления происходит все нормально, при удалении - нет
Он почему-то не удаляется
Отправляю запрос(POST), и получаю ответ
HTML5 |
1
2
3
| <!— END CONTROL PANEL HEADER —>
<!— START CONTROL PANEL FOOTER —> |
|
А должен быть наподобе такого ответа:
HTML5 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| <!-- END CONTROL PANEL HEADER -->
<p> </p><p> </p>
<!-- form started:23 queries executed -->
<form action=".php?do=" method="post" name="messageform" id="messageform">
<input type="hidden" name="do" value="" />
<input type="hidden" name="adminhash" value="6e3a4387ed7ca79ce718b0e67338ec78" />
<input type="hidden" name="securitytoken" value="1434636383-19e54a94a7c77fc853f90c12a8f9b2f1aa23c0b2" />
<br />
<table cellpadding="4" cellspacing="0" border="0" align="center" width="65%" style="border-collapse:separate" class="tborder" id="messageform_table">
<tr>
<td class="tcat" align="center" colspan="2"><b>Сообщение форума</b></td>
</tr>
<tr valign="top">
<td class="alt1" colspan="2"><blockquote><br />Раздел успешно удалён<br /><br /></blockquote></td>
</tr>
</table>
</form>
<!-- form ended: 23 queries executed -->
<p align="center" class="smallfont">Если ваш браузер не поддерживает переадресацию, пожалуйста, нажмите <a href="http://test.ru/admincp/forum.php">здесь</a>.</p>
<script type="text/javascript">
myvar = ""; timeout = 10;
function exec_refresh()
{
window.status="Переадресация..."+myvar; myvar = myvar + " .";
timerID = setTimeout("exec_refresh();", 100);
if (timeout > 0)
{ timeout -= 1; }
else { clearTimeout(timerID); window.status=""; window.location="http://test.ru/admincpeyc/forum.php"; }
}
exec_refresh();
</script>
<p align="center" class="smallfont"><a href="http://test.ru/admincpeyc/forum.php" onclick="javascript:clearTimeout(timerID);">Обработка завершена - продолжаю</a></p>
<!-- START CONTROL PANEL FOOTER --> |
|
Как я понимаю, не удаляется, потому что есть javascript на сайте, и уже он выполняет работу.
Смотрел ход удаления категории через firefox
http://s018.radikal ru/i503/15... cf9e1a.png - если картинка мала
Смотрю через программу, данные уходят вроде как одиннаковые, но что-то не хватает.
Мой код:
C# |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| public void DeleteCats(string site)
{
string list = "";
{//Get Запрос
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://" + site + "/admincp/forum.php?do=remove&f=3&s=");
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
request.Host = site;
request.CookieContainer = all.CookieContainer;
request.KeepAlive = true;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0";
request.Referer = "http://" + site + "/login.php?do=login";
request.Credentials = CredentialCache.DefaultCredentials;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream receiveStream = response.GetResponseStream();
using (StreamReader readStream = new StreamReader(receiveStream, Encoding.Default))
{
list = readStream.ReadToEnd().Trim();
}
}
}//Окончание Get запроса
string adminhash = Regex.Match(list, "adminhash\" value=\"(.*?)\"").Groups[1].Value
, securitytoken = Regex.Match(list, "securitytoken\" value=\"(.*?)\"").Groups[1].Value;
{//POST
string URI = @"http://" + site + "/admincpeyc/forum.php?do=kill";
string Parameters = "do=kill&adminhash" + adminhash + "securitytoken=" + securitytoken + "&forumid=5";//Айди категории я знаю заранее
logined = System.Net.HttpWebRequest.Create(URI) as HttpWebRequest;
logined.CookieContainer = all.CookieContainer;
logined.Referer = @"http://" + site + "/admincp/forum.php?do=remove&f=1&s=";
logined.KeepAlive = false;
logined.ContentType = "application/x-www-form-urlencoded";
logined.Method = "POST";
byte[] bytes = System.Text.Encoding.Default.GetBytes(Parameters);
logined.ContentLength = bytes.Length;
System.IO.Stream os = logined.GetRequestStream(); // создаем поток
os.Write(bytes, 0, bytes.Length); // отправляем в сокет
System.Net.WebResponse resp = logined.GetResponse();
if (resp == null)
{
//Что то ответ пустой
return;
}
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream(), Encoding.Default);
list = sr.ReadToEnd().Trim().ToString();
}
{//Get Запрос
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://" + site + "/admincp/forum.php");
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
request.Host = site;
request.CookieContainer = all.CookieContainer;
request.KeepAlive = true;
request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0";
request.Referer = "http://" + site + "/admincp/forum.php?do=kill";
request.Credentials = CredentialCache.DefaultCredentials;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream receiveStream = response.GetResponseStream();
using (StreamReader readStream = new StreamReader(receiveStream, Encoding.Default))
{
list = readStream.ReadToEnd().Trim();
}
}
}//Окончание Get запроса
} |
|
Заранее спасибо!