Старый способ 100500 лет не пашет, вот выкладываю новый, сочний.
Итак создаем проект, кидаем на форму:
2 текстбокса
1 кнопку
Кликаем 2 раза на кнопку и кидаем туда код:
Код:
if (textBox1.Text != "" && textBox2.Text != "")//если поля не пустые
{
Thread th = new Thread(new ThreadStart(avtoriz));//создаем новый поток
th.IsBackground = true;//Обозначаем что он будет фоновым
th.Start();//сам запуск потока
}
else { MessageBox.Show("Введите логин/пароль", "Error!!!", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
Не забываем вставить данные юзинги:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Threading;
Дальше кидаем:
Код:
string sid;//печенька ради которой вся марока и идет
private void avtoriz()
{
string recv = this.post("http://login.vk.com/", "act=login&q=1&al_frame=1&expire=&captcha_sid=&captcha_key=&from_host=vkontakte.ru&email=" + this.textBox1.Text + "&pass=" + this.textBox2.Text, "");//отправляем запрос
if (recv.IndexOf("parent.onLoginDone") != -1)//если в ответе содержится данная строка
{
recv = recv.Remove(0, recv.IndexOf("setCookieEx('sid',") + 20);
recv = recv.Substring(0, recv.IndexOf("'"));//парсим сид
sid = "remixsid=" + recv + ";";
MessageBox.Show("Успешно авторизовался!", "Грац", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
else
{
MessageBox.Show("Неверный логин/пароль", "Error!!!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
Теперь саму процедурку отправки пост - запросов:
Код:
private string post(string URL, string Post, string kuki)
{
string html = string.Empty; //создаем пустую переменную
HttpWebResponse response = null; //Пустой объект класса респонс - отпраки запроса и получения ответа
try
{
String secondStepForm = Post;//Пост-параметры все в эту переменную идут
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);//создаем запрос
request.UserAgent = "Opera/9.80";
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add(HttpRequestHeader.Cookie, kuki);
byte[] EncodedPostParams = Encoding.ASCII.GetBytes(secondStepForm);
request.ContentLength = EncodedPostParams.Length;
request.GetRequestStream().Write(EncodedPostParams, 0, EncodedPostParams.Length);
request.GetRequestStream().Close();
response = (HttpWebResponse)request.GetResponse();//отправляем запрос
html = new StreamReader(response.GetResponseStream(), Encoding.Default).ReadToEnd();//получаем ответ
}
catch { }
return html;//Возвращаем ответ
}
Теперь можем работать и с запросами вконтакт, вставляя в 3 процедурку sid примерно так:
Если удалить друга из вк, в чарлике будет такой запрос (выше).
Поменял mid (ид того, кого нужно удалить) на другой - отправляю = 0 эмоций. Попробовал удалить из вконтакте, смотрю в чарлик и вижу, что меняется не только mid, но и hash. Тоесть для каждого человека свой хэш. Также этот хэш есть в публикации на стенку групп\пабликов\людей. Везде короче
От сюда вопрос - откуда брать этот хэш?
________________ На жуке не сижу, в л2 не играю, приложения не взламываю, софт больше не пишу.. Работаю Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
В исходном коде страницы он есть - отправили запрос на страницу, взяли хэш и сформировали запрос на удаление, если делали авторизацию и процедуру по моему руководству, то запрос примет вид:
Hermein, спасибо. Нет кнопки "спасибо" чтобы нажать.
А почему чарлес не видит этих полей?
Потому что:
1) Это html в добавок поля hidden - то есть скрыты
2) Запрос по https отправляется, как и что происходит я без понятия
ps: я просто к тому что не все делается чарликом, иногда достаточно включить мозг и например просто исходный код страницы посмотреть