авторизация нормально. дальше нормально нахожу людей "act=ajaxinv&gid={0}&id={1}&hash={2}" вот эту информацию тоже нахожу. POST - url - http://vkontakte.ru/groups_ajax.php реффер - http://vkontakte.ru/gsearch.php?section=people&ginv=ИД группы весь код: Code: try { System.Net.ServicePointManager.Expect100Continue = false; byte[] byteArray = Encoding.UTF8.GetBytes(textRequest); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ProtocolVersion = HttpVersion.Version11; request.CookieContainer = cooks; request.ContentLength = textRequest.Length; request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; request.Headers.Add("Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7"); request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8 GTBDFff GTB7.0"; request.Headers.Add("X-Requested-With: XMLHttpRequest"); request.Headers.Add("Pragma: no-cache"); request.Headers.Add("Cache-Control: no-cache"); request.KeepAlive = true; request.Referer = reffer; //request.Proxy = new WebProxy(p_proxy.Text); //request.Proxy.Credentials = new NetworkCredential(p_log_proxy.Text, p_pass_proxy.Text); Stream requestStream = request.GetRequestStream(); requestStream.Write(byteArray, 0, textRequest.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader readStream = new StreamReader(responseStream, enc); string currResponse = readStream.ReadToEnd(); readStream.Close(); response.Close(); return currResponse; } catch (WebException ex) { // MessageBox.Show(ex.Message); return null; } catch (Exception ex) { return null; } currResponse - пустая строка =((( хотя должно быть ответ пригласил или нет. помогите что не так?
А что тут помогать? В таких случаях все банально - либо что то не передается(Cookies, POST/GET переменные), либо передается не в том формате, Fiddler в руки и сравнивай с тем что передает браузер и что передает твой код.
Насколько я знаю, при инвайтинге хеш закодирован, нужно раздекодить (Сам столкнулся вчера с этой проблемой, но решил её)
function inviteMemberToGroup(gid, mid, hash) { show("progr"+mid); Ajax.postWithCaptcha( 'groups_ajax.php', {'act': 'ajaxinv', 'gid': gid, 'id': mid, 'hash': decode_hash(hash)}, {onSuccess: function (ajaxObj, responseText) { ge('actions'+mid).innerHTML = responseText; }, onFail: function () { ge('fBox'+mid).innerHTML = 'There was a problem with the request.'; }, onCaptchaHide: function() { hide("progr"+mid) }} ); } как его перевести в C# ?
Руками и головой могу дать кусочег на Delphi: Code: Post.Add('act=ajaxinv'); Post.Add('gid='+IDGroup); Post.Add('id='+IDChar); Post.Add('hash='+Decodehash(Hash)); Page1.Text := HTTP.Post('http://vkontakte.ru/groups_ajax.php', Post); А вообще существет HTTP Analyzer очень хороша программка, которой можно посмотреть запрос который ты делаешь и firefox.exe и СВОЯПРОГРАММА.exe... берёшь включаешь анализатор, свою програмку добавляешь в анализатор жмёшь кнопку на запуск входа и приглашений, и анализатор покажет что не так. На мой взгляд очень проста в использование + видно всё что передаёт и принимает!
Code: Post.Add('act=ajaxinv'); Post.Add('gid='+IDGroup); Post.Add('id='+IDChar); Post.Add('hash='+Decodehash(Hash)); Page1.Text := HTTP.Post('http://vkontakte.ru/groups_ajax.php', Post); та мне как раз работа Decodehash нужна! то что ты мне прислал я и так делаю и пользуюсь fidllerom или firebug