PDA

Просмотр полной версии : [Помогите!] Зависает бот после 2го запроса на сервер


S.e.n.s.o.R
01.04.2011, 18:44
Проблема в том, что После 2го запроса на сервер программа намертво зависает.
Вот код запроса
private void button5_Click_1(object sender, EventArgs e)
{
String secondStepForm = "api%5Fid=325431&rnd=173&viewer%5Fid=" + textBox2.Text+ ";3&a=gift&auth%5Fkey=auth=" + textBox1.Text;
[Ссылки могут видеть только зарегистрированные и активированные пользователи] request = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])WebRequest.Create("[Ссылки могут видеть только зарегистрированные и активированные пользователи]");
request.UserAgent = "Opera/9.80";
request.Method = "POST";
request.ContentType = "application/x-[Ссылки могут видеть только зарегистрированные и активированные пользователи]";
byte[] EncodedPostParams = Encoding.ASCII.GetBytes(secondStepForm);
request.ContentLength = EncodedPostParams.Length;
request.GetRequestStream().Write(EncodedPostParams , 0, EncodedPostParams.Length);
request.GetRequestStream().Close();
MessageBox.Show("Взял!");
}

Где ошибка?

Nickitee
01.04.2011, 20:18
Если тебе нужно отправить с 1 кликом, 2 раза, то:

for (int i = 0; i < 2; i++)
{
String secondStepForm = "api%5Fid=325431&rnd=173&viewer%5Fid=" + textBox2.Text+ ";3&a=gift&auth%5Fkey=auth=" + textBox1.Text;
[Ссылки могут видеть только зарегистрированные и активированные пользователи] request = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])WebRequest.Create("[Ссылки могут видеть только зарегистрированные и активированные пользователи]");
request.UserAgent = "Opera/9.80";
request.Method = "POST";
request.ContentType = "application/x-[Ссылки могут видеть только зарегистрированные и активированные пользователи]";
byte[] EncodedPostParams = Encoding.ASCII.GetBytes(secondStepForm);
request.ContentLength = EncodedPostParams.Length;
request.GetRequestStream().Write(EncodedPostParams , 0, EncodedPostParams.Length);
request.GetRequestStream().Close();
}
MessageBox.Show("Взял!");

S.e.n.s.o.R
01.04.2011, 22:32
Не не про то, я о том, что бот выполняет несколько функций, и первые два запроса (любые) он легко отправляет, но на 3й ВСЕГДА виснет

Hermein
03.04.2011, 07:19
Не не про то, я о том, что бот выполняет несколько функций, и первые два запроса (любые) он легко отправляет, но на 3й ВСЕГДА виснет

Процедурки пиши и кода меньше и зависать ничего не будет.

Ну а если ты уже ас, то используй параллели

S.e.n.s.o.R
03.04.2011, 14:45
Процедурки пиши и кода меньше и зависать ничего не будет.

Ну а если ты уже ас, то используй параллели

Я не асс :confused: мне интересно какая ошибка допущена в коде.

Hermein
14.04.2011, 01:49
Проблема точь в точь. Запросы вроде бы и выполняются, но прога зависает намертво

Не может программа намертво зависать, если получает ответ сервера, а если не получает и не используется backgroundworker, чтобы форма не висела...

nikitoz
14.04.2011, 10:40
Она не совсем намертво зависает, но форма с программой откликается раз секунд в 20.

А backgroundworker он же вроде только с 3.5-4 фрейворка доступен? (судя по майкрософту)

Hermein
14.04.2011, 11:51
Проблема в том, что После 2го запроса на сервер программа намертво зависает.
Вот код запроса
private void button5_Click_1(object sender, EventArgs e)
{
String secondStepForm = "api%5Fid=325431&rnd=173&viewer%5Fid=" + textBox2.Text+ ";3&a=gift&auth%5Fkey=auth=" + textBox1.Text;
[Ссылки могут видеть только зарегистрированные и активированные пользователи] request = ([Ссылки могут видеть только зарегистрированные и активированные пользователи])WebRequest.Create("[Ссылки могут видеть только зарегистрированные и активированные пользователи]");
request.UserAgent = "Opera/9.80";
request.Method = "POST";
request.ContentType = "application/x-[Ссылки могут видеть только зарегистрированные и активированные пользователи]";
byte[] EncodedPostParams = Encoding.ASCII.GetBytes(secondStepForm);
request.ContentLength = EncodedPostParams.Length;
request.GetRequestStream().Write(EncodedPostParams , 0, EncodedPostParams.Length);
request.GetRequestStream().Close();
MessageBox.Show("Взял!");
}

Где ошибка?

Она не совсем намертво зависает, но форма с программой откликается раз секунд в 20.

А backgroundworker он же вроде только с 3.5-4 фрейворка доступен? (судя по майкрософту)

нет с 3 он доступен
А если еще и ошибка выскакивает значит ответ не получает, и завис формы по той же причине