Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
1

TIdHTTP Отправить сообщение

02.11.2011, 15:25. Показов 2630. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую. Подскажите пожалуйста как отправить сообщение вконтакте (авторизация пройдена)
При отправке с браузера снифер выдает такое:
POST http://vk.com/al_im.php HTTP/1.1
Host: vk.com
Proxy-Connection: keep-alive
Content-Length: 221
Origin: http://vk.com
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2
Content-Type: application/x-www-form-urlencoded
Accept: */*
Referer: http://vk.com/im?sel=116443786
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
Cookie: remixsettings_bits=1; remixchk=5; remixlang=0; remixseenads=1; remixdt=7200; audio_vol=42; remixsid=fbe7cba549112dd9b238c751e7c37e488c6b24641439d543d1605b09b92d

act=a_send&al=1&hash=8c2678ec9bd920955a&media=&msg=%D0%BE%D1%8B%D0%B2%D0%B4%D0%B 0%D1%8B%D0%BE%D0%B0%D0%B2%D0%B4%D0%BB%D1%84%D1%8B%D0%BE%D0%B0%D0%B6%D0%B4%D1%8B% D1%84%D0%BB%D0%B2%D0%BE%D0%B0&title=&to=116443786&ts=51467531
Пробовал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
TStringList* Inf = new TStringList;
Inf->Text =
 
"HTTP/1.1                     "
"Host: vk.com                   "
"Proxy-Connection: keep-alive    "
"Content-Length: 221              "
"Origin: [url]http://vk.com[/url]             "
"X-Requested-With: XMLHttpRequest   "
"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2 "
"Content-Type: application/x-www-form-urlencoded                                                                         "
"Accept: */*                                                                                                              "
"Referer: [url]http://vk.com/im?sel=116443786[/url]                                                                                   "
"Accept-Encoding: gzip,deflate,sdch                                                                                         "
"Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4                                                                        "
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3                                                                             "
"Cookie: remixsettings_bits=1; remixchk=5; remixlang=0; remixseenads=1; remixdt=7200; audio_vol=42; remixsid=ebf7cba549112dd9b238c751e7c37e488c6b24641439d543d1605b09b92d                                       "
"act=a_send&al=1&hash=8c2678ec9bd920955a&media=&msg=%D0%BE%D1%8B%D0%B2%D0%B4%D0%B0%D1%8B%D0%BE%D0%B0%D0%B2%D0%B4%D0%BB%D1%84%D1%8B%D0%BE%D0%B0%D0%B6%D0%B4%D1%8B%D1%84%D0%BB%D0%B2%D0%BE%D0%B0&title=&to=116443786&ts=51467531 "
 ;
TStringStream *Response = new TStringStream;
IdHTTP1->Post("http://vk.com/al_im.php", Inf, Response);
Ничего не происходит

Буду очень благодарен за советы и поправки
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2011, 15:25
Ответы с готовыми решениями:

Отправить сообщение
Добрый день! Нужно отправить сообщение, но не получается сообщение не приходят на мейл вот код...

не могу отправить сообщение
Здравствуйте! Пытаюсь написать чат на С под Linux. Имеется клиент и сервер. В клиенте вводится...

Отправить личное сообщение
Подскажите пожалуйста, не могу сам разобраться, как отправлять личные сообщения. Спасибо. Вроде...

Отправить сообщение программно
<div class="im_editable" tabindex="0" contenteditable="true" id="im_editable144606890"></div> ...

6
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
02.11.2011, 16:54 2
C++
1
2
3
4
5
6
7
8
9
10
void login()   //LOGIN
{
String url;
url = "vk.com";
Form3->IdHTTP1->AllowCookies = true;
Form3->IdHTTP1->CookieManager = Form3->IdCookieManager1;
Form3->IdHTTP1->CookieManager->AddCookie("credentials=11653e2b7c9a8;",url);
Form3->IdHTTP1->Request->UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";
Form3->IdHTTP1->Request->Host = "Vk.com";
}
на что сдесь важно обратить внимание!

1) авторизация проходит через кукисы.
2) на форму надо кинуть компонент "CookieManager"
3) в свойствах компонента "IdHTTP1" выставить компонент CookieManager как контейнер кукисов.
C++
1
Form3->IdHTTP1->CookieManager = Form3->IdCookieManager1;
4) запонить все кукисы. у вас они написаны стройчкой, через запятую, кукименеджер на эту строчку ругнетса.
надо разбивать все на отдельные поля.
C++
1
Form3->IdHTTP1->CookieManager->AddCookie("credentials=11653e2b7c9a8;",url);
"Cookie: remixsettings_bits=1; remixchk=5; remixlang=0; remixseenads=1; remixdt=7200; audio_vol=42; remixsid=ebf7cba549112dd9b238c751e7c37e488c6b24641439d543d1605b09b92d "
"act=a_send&al=1&hash=8c2678ec9bd920955a&media=&msg=%D0%BE%D1%8B%D0%B2%D0%B4%D0% B0%D1%8B%D0%BE%D0%B0%D0%B2%D0%B4%D0%BB%D1%84%D1%8B%D0%BE%D0%B0%D0%B6%D0%B4%D1%8B %D1%84%D0%BB%D0%B2%D0%BE%D0%B0&title=&to=116443786&ts=51467531 "


C++
1
2
3
4
Form3->IdHTTP1->CookieManager->AddCookie("remixsettings_bits=1;",url);
Form3->IdHTTP1->CookieManager->AddCookie("remixchk=5;",url);
Form3->IdHTTP1->CookieManager->AddCookie("remixseenads=1;",url);
Form3->IdHTTP1->CookieManager->AddCookie("remixdt=7200;",url);
вот к такому виду привести все куки.


5) в стринглист
C++
1
TStringList* Inf = new TStringList;
добавлять не все то что вы добавляли, а лишь только последнюю часть.

C++
1
2
Inf->Text =
"act=a_send&al=1&hash=8c2678ec9bd920955a&media=&msg=%D0%BE%D1%8B%D0%B2%D0%B4%D0%B0%D1%8B%D0%BE%D0%B0%D0%B2%D0%B4%D0%BB%D1%84%D1%8B%D0%BE%D0%B0%D0%B6%D0%B4%D1%8B%D1%84%D0%BB%D0%B2%D0%BE%D0%B0&title=&to=116443786&ts=51467531 "
6) запрос делаетса в виде
C++
1
IdHTTP1->Post("http://vk.com/al_im.php", Inf);
7) ответ сервера можно получить вот так :
C++
1
2
TStringStream *Response = new TStringStream;
Response = IdHTTP1->Post("http://vk.com/al_im.php", Inf);
2
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
02.11.2011, 19:44  [ТС] 3
koldun Я вам искренне очень благодарен! Не представляете сколько я мучался с этим..
Кстати куки то норм работают.. Но лучше последую вашим советам.

Добавлено через 1 час 40 минут
koldun, не знаете что за параметр ts?

&title=&to=116443786&ts=51467531
0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
02.11.2011, 20:03 4
эээммм.... ну кагбе понятия не имею...

я ж не знаю что вы там и зачем на вконтакте отправляете...
0
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
02.11.2011, 20:07  [ТС] 5
по сути это обычное сообщение в IM режиме..
0
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
02.11.2011, 20:21 6
koldun, а вы не пробовали авторизовываться в приложениях вк? (перекидываться пакетами)
0
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
03.11.2011, 14:04 7
Цитата Сообщение от QVO Посмотреть сообщение
koldun, а вы не пробовали авторизовываться в приложениях вк? (перекидываться пакетами)
пробовал

смотря какое приложение...

есть простенькие приложения, который пересылку делают в открытом формате, там все нереально просто.... дажи описывать нечего.

а вот есть более продвинутые приложения написаные на flash ActionScript 3.0, и использующие для передачи информации формат AMF(0 - 3) Вот для таких приложений написать програмульку на билдере, это нереальнейший геморой...
проще будет выучить флеш и написать бота на флеше (просто для флеша это родной формат и он его понимает с полуслова... )
1
03.11.2011, 14:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2011, 14:04
Помогаю со студенческими работами здесь

Отправить SMS сообщение
как отправить чез SMSmanager сообщение на телефон с картинкой из Drawable?

Отправить сообщение СМС
Подскажите, не нашёл примера у embarcadero как отправить смс, нашёл пример только делфи, но...

Отправить сообщение окну
Нужно отправить сообщение о нажатие левой кнопки мыши окну Spy++ при клике в окно показывает...

Отправить сообщение на email
У меня есть форма html. Нужно написать код php для отправки сообщения на почту и доработать код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru