Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка изображений vk 
:(
    Опции темы
dj100500
Дата 26.6.2012, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 9.10.2010

Репутация: нет
Всего: нет



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

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
using EazySharp.Net;
namespace ScreenShotMe
{
    class Vk
    {
        private string cookies;
        private const string useragent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2";
        public bool IsAuhtorized { get; private set; }
        public bool Init(string login, string pass)
        {
            HttpWebRequest req = CreateHttpWebRequest("http://m.vk.com/login");
            string page = string.Empty;
            using(HttpWebResponse rsp = (HttpWebResponse)req.GetResponse())
            {
                page = ReadResponse(rsp);
                int index = page.IndexOf("https://login.vk.com/?act=login&to=&from_host=m.vk.com&from_protocol=http&ip_h=");
                if (index == -1)
                    return false;
                int end_index = page.IndexOf('\"', index);
                string uri = page.Substring(index, end_index - index);
                req = CreateHttpWebRequest(uri);
            }
            req.Referer = "http://m.vk.com/login";
            req.ContentType = "application/x-www-form-urlencoded";
            req.Method = "POST";
            PostData pd = new PostData();
            pd["email"] = login;
            pd["pass"] = pass;
            req.AllowAutoRedirect = false;
            using(StreamWriter writer = new StreamWriter(req.GetRequestStream()))
            {
                writer.Write(pd.QueryString);
            }
            using (HttpWebResponse rsp = (HttpWebResponse)req.GetResponse())
            {
                req = CreateHttpWebRequest(rsp.Headers[HttpResponseHeader.Location]);
                req.Headers.Add(HttpRequestHeader.Cookie, "remixlang=0; remixdt=0; audio_vol=100; remixmdevice=1366/768/1/!!-!; remixchk=5; remixseenads=0; remixflash=11.1.102");
                req.Referer = "http://m.vk.com/login";
                req.AllowAutoRedirect = false;
            }
            using (HttpWebResponse rsp = (HttpWebResponse)req.GetResponse())
            {
                cookies = rsp.Headers[HttpResponseHeader.SetCookie];
                cookies = cookies.Substring(0, cookies.IndexOf(';') + 1) + " remixchk=5;";
            }
            IsAuhtorized = true;
            return true;
        }
        
        private string ReadResponse(WebResponse rsp)
        {
            using (StreamReader reader = new StreamReader(rsp.GetResponseStream()))//, Encoding.GetEncoding(1251)))
            {
                return reader.ReadToEnd();
            }
        }
        private HttpWebRequest CreateHttpWebRequest(string uri)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
            if (IsAuhtorized)
                req.Headers.Add(HttpRequestHeader.Cookie, cookies);
            req.UserAgent = useragent;
            req.AllowAutoRedirect = false;
            req.ServicePoint.Expect100Continue = false;
            req.Headers.Add("Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3");
            req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            return req;
        }
        public bool UploadImage()
        {
            if(!IsAuhtorized)
                return false;
            string url = string.Empty;
            HttpWebRequest req = CreateHttpWebRequest("http://m.vk.com/album162801392_157181421?act=add");
            string page = ReadResponse(req.GetResponse());
            int index = page.IndexOf("action=\"")+8;
            int end_index = page.IndexOf('\"', index);
            url = page.Substring(index, end_index - index);
            req = CreateHttpWebRequest(url);
            req.Method = "POST";
            req.Referer = "http://m.vk.com/album162801392_157181421?act=add";
            req.ContentType = "multipart/form-data; boundary=----WebKitFormBoundary2yzl1KCZbcLbBdCR";
            using(StreamWriter writer = new StreamWriter(req.GetRequestStream()))
            {
                writer.Write("----WebKitFormBoundary2yzl1KCZbcLbBdCR\r\n");
                writer.Write("Content-Disposition: form-data; name=\"file1\"; filename=\"a.jpeg\"\r\n");
                writer.Write("Content-Type: image/jpeg\r\n");
                writer.Write(File.ReadAllText("a.jpeg"));
                writer.Write("\r\n----WebKitFormBoundary2yzl1KCZbcLbBdCR\r\n");
                writer.Write("Content-Disposition: form-data; name=\"file2\"; filename=\"\"\r\n");
                writer.Write("----WebKitFormBoundary2yzl1KCZbcLbBdCR\r\n");
                writer.Write("Content-Disposition: form-data; name=\"file3\"; filename=\"\"\r\n");
                writer.Write("----WebKitFormBoundary2yzl1KCZbcLbBdCR\r\n");
            }
            using (HttpWebResponse rsp = (HttpWebResponse)req.GetResponse())
            {
                req = CreateHttpWebRequest(rsp.Headers[HttpResponseHeader.Location]);
            }
            req.Referer = "http://m.vk.com/МОЙ_АЛЬБОМ?act=add";
            req = CreateHttpWebRequest("http://m.vk.com" + req.GetResponse().Headers[HttpResponseHeader.Location]);
            req.GetResponse();
            return true;
        }
    }
}



Это сообщение отредактировал(а) dj100500 - 26.6.2012, 02:14
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.