C#   Уроки программирования с нуля. Си-шарп для чайников   C#

Здравствуйте, гость!
Вход
Регистрация


Протокол HTTP, метод POST и куки в Си-шарп
В прошлом уроке были рассмотрены самые простые HTTP-запросы, при помощи которых мы можем получить доступ к общедоступным данным, а в этом уроке мы рассмотрим, как получать авторизованный доступ, а также отправлять данные на сервер.

Для этого урока нам понадобится программа, которая осуществляет сетевой анализ трафика. А конкретно Fiddler, скачать бесплатно вы можете его здесь. Качайте, устанавливайте и запускайте. Эта программа показывает весь ваш веб-трафик (HTTP-запросы). В левой части экрана Fiddler-a размещен список всех запросов, а в правой части информация по запросу, который вы выбрали слева. Сделайте запрос в браузере (например обновите страницу с этим уроком), и после этого вы увидите в списке слева в Fiddler-е много запросов (кроме запроса страницы, там еще запрашиваются скрипты, стили, изображении и т.д, необходимые для страницы), нас будет интересовать запрос именно к этой странице (в Fiddler-e host: mycsharp.ru, url: /post/50/2015_04_19_protokol...), нажмите на этот запрос, и справа отобразится информация о нем. В правой части выберите вкладку с лупой Inspectors, в ней данные разделены на две части, вверху данные запроса, а внизу ответа. Там же есть и разные вкладки, переключитесь на вкладку "Raw" для запроса и ответа, и после этого вам будет видно данные запросов в простом виде, о котором говорилось в прошлом уроке (рисунок 1, нажмите для увеличения). Как использовать эти данные поговорим немного позже, а сейчас немного теории.

окно Fiddler
Рисунок 1 - окно Fiddler


Куки

Думаю все слышали о куках, здесь они нам понадобятся. Куки (кукисы, cookies) - это небольшие данные, которые создаются веб-сервером, и хранятся клиентом (браузером). При каждом обращении клиента к серверу, куки отправляются вместе с HTTP-запросом, и сервер их обрабатывает. Чаще всего куки используются для аутентификации (проверки подлинности) пользователя, для хранения персональных предпочтений клиента, поверхностной идентификации.

Несколько реальных примеров - здесь на сайте, если вы подписались на рассылку я выдаю вам cookie, и когда вижу что, оно у вас есть, скрываю форму для подписки. Также, бывают на сайтах анонимные опросы, которые не требую чтобы вы были авторизованы, там тоже вам выдают cookie, чтобы вы не голосовали несколько раз (но можно ведь просто удалить в браузере эти куки...), и показать вам результат. Ну и для всяких визуальных предпочтений - скрыть комментарии например.

Но в этом уроке нам будет интересно использование куков для аутентификации. Вы ввели на сайте логин и пароль, вошли своим пользователем, и дальше просматриваете сайт от этого пользователя. Без куков вам бы пришлось при каждом переходе на сайте вводить снова логин с паролем, для доступа к авторизованным функциям и данным.

А теперь рассмотрим, как кодом передавать куки, чтобы оставаться авторизованным.

Специально для этого урока я создал пользователя на сайте с логином test1111, пароль 1111. Входим им на сайт, очищаем журнал Fiddler-а (иконка крестик -> remove all), обновляем страницу в браузере, переходим в Fiddler, выбираем запрос к странице которую обновляли, и смотрим заголовки запроса, копируем всю строку заголовка cookie и устанавливаем в коде этот заголовок:

public static void Main (string[] args)
{
  string uri = "http://mycsharp.ru/contacts.aspx";
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);

  request.Headers.Add ("Cookie: _ga=GA1.2.187608599.1469356153; _ym_uid=1469356153667699515; ASP.NET_SessionId=3ddh3eu4b2e4exipzik4st5v; _ym_isad=2; _rbu=14694650945817652181; _gat=1; _rbs=14694680424413447723; _ym_visorc_21378790=w; mycsharp=77D035D8FCB046D8E0634DD106BF0E2526E9EC554EAB9EC9E13D670D
D05AD2875C223F597A8C04B4764716EFFDEA857280E5BCBFC822E18EB32A8E593
E51788A0E5DE50A96C3326B413A798AEFDE09E4C5663BD20790DADBF790FAE7B8
202B2D543D7FFB9A1667CF36934005243496E02310FD81");

  HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
  Console.WriteLine(reader.ReadToEnd().Contains("test1111"));
  Console.ReadLine();
}


Здесь в конце выводится булевое значение содержит ли строка слово "test1111", этот логин выводится (приветствие слева) лишь если вы авторизированы. Программа выводит true или false, в зависимости от того, установлен ли сookie авторизации. Вот так программно мы можем получать авторизованный доступ на сайтах.
Конечно, не со всеми сайтами это будет работать так просто, к некоторым нужен индивидуальный подход, но в целом, вы знаете куда двигаться.

Запросы методом POST, отправка данных на сервер

Если куки это данные небольших размеров, и передавать их серверу нормально в виде заголовка запросом GET, то данные размеров побольше отправляются при помощи метода POST.

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

А теперь я покажу вам, как делать самый простой POST запрос. Специально для этого урока я создал страничку на сайте, на которой есть форма отправки данных - тектовое поле и кнопка, вы вводите текст, отправляете на сервер, и тот возвращает его в верхнем регистре.

Запускаем Fiddler, делаем на этой страничке отправку данных, и смотрим какой запрос у нас получился. Первое что мы видим, это то, что метод HTTP-запроса уже POST:

POST http://mycsharp.ru/lesson_post.aspx HTTP/1.1


А также появилось тело запроса - всё что отделено от заголовков пустой строкой:

__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTEzNDY
2NDcwOTEPZBYCZg9kFgICAw9kFgQCAw8P
FgIeB1Zpc2libGVoZGQCBQ8PFgIfAGhkZBgCBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3R
CYWNrS2V5X18WAwUjY3RsMDAkTG9naW5WaWV3MSRMb2dpblN0YXR1czIkY3RsM
RDEFI2N0bDAwJExvZ2luVmlldzEkTG9naW5TdGF0dXMyJGN0bDAzBRZjdGwwMCRC
dXR0b25BZGRNZXNzYWdlBRBjdGwwMCRMb2dpblZpZXcxDw9kAgFklPjrncDGuwrKW
9f9BwjvWEd1XX4%3D&__VIEWSTATEGENERATOR=B8D7EBDC&__EVENTVALIDAT
ION=%2FwEdAAaH57zUq1EcgzGHRmNTrPx7g8CfUEZ4x6JEFru5
nuWdjCW%2BqOYM8KaSMijlDwu7G%2FLcsSnZ18juQMuHSVUa%2FyIvHzTcyUMF0
BNvM9WAdwxerE6E1mG5ttYwRKM8%2FHd5iYqdyvbUyTUDQtBYcvYy5Rw1v9nQ
2g%3D%3D&ctl00%24C
ontentPlaceHolder1%24Text=mycsharp_ru&ctl00%24ContentPlaceHolder1%24B
uttonTextToUpper=%D0%9E%D1%82%D0
%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C&ctl00%24email=
%D1%82%D0%B2%D0%BE%D0%B9+e-mail


Это данные, которые отправляются на сервер. Они здесь в формате ключ-значение, и разделяются символом "&". Там же мы видим данные, которые передаются с текстового поля: ctl00%24ContentPlaceHolder1%24Text=mycsharp_ru.

А теперь сделаем такой запрос программно:

public static void Main (string[] args)
{
  string uri = "http://mycsharp.ru/lesson_post.aspx";
  HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);

  // данные для отправки, здесь я изменил значение тектового поля на "http_post"
  string postData = "__VIEWSTATE=%2FwEPDwULLTEzNDY
2NDcwOTEPZBYCZg9kFgICAw9kFgQCAw8P
FgIeB1Zpc2libGVoZGQCBQ8PFgIfAGhkZBgCBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3R
CYWNrS2V5X18WAwUjY3RsMDAkTG9naW5WaWV3MSRMb2dpblN0YXR1czIkY3RsM
RDEFI2N0bDAwJExvZ2luVmlldzEkTG9naW5TdGF0dXMyJGN0bDAzBRZjdGwwMCRC
dXR0b25BZGRNZXNzYWdlBRBjdGwwMCRMb2dpblZpZXcxDw9kAgFklPjrncDGuwrKW
9f9BwjvWEd1XX4%3D&__VIEWSTATEGENERATOR=B8D7EBDC&__EVENTVALIDAT
ION=%2FwEdAAaH57zUq1EcgzGHRmNTrPx7g8CfUEZ4x6JEFru5
nuWdjCW%2BqOYM8KaSMijlDwu7G%2FLcsSnZ18juQMuHSVUa%2FyIvHzTcyUMF0
BNvM9WAdwxerE6E1mG5ttYwRKM8%2FHd5iYqdyvbUyTUDQtBYcvYy5Rw1v9nQ
2g%3D%3D&ctl00%24C
ontentPlaceHolder1%24Text=http_post&ctl00%24ContentPlaceHolder1%24B
uttonTextToUpper=%D0%9E%D1%82%D0
%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C&ctl00%24email=
%D1%82%D0%B2%D0%BE%D0%B9+e-mail";

  // конвертируем строку в массив байтов
  byte[] data = Encoding.UTF8.GetBytes(postData);
  // указываем метод запроса POST
  request.Method = "POST";
  // для POST запроса необходимо указать тип передаваемых данных и размер
  request.ContentType = "application/x-www-form-urlencoded";
  request.ContentLength = data.Length;
  // записываем в поток запроса данные
  using (var stream = request.GetRequestStream())
  {
    stream.Write(data, 0, data.Length);
  }

  HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

  Console.WriteLine(reader.ReadToEnd()); // получаем ответ от сервера - страничка с текстом "HTTP_POST"
  reader.Close ();
  Console.ReadLine();
}


Здесь всё просто, подготавливаем данные для отправки - переводим их в массив байтов и записываем в поток запроса. Указываем заголовки тип данных, размер данных, указываем что метод запроса POST, и собственно, делаем запрос. Если бы нужно было быть авторизованным, чтобы отправлять данные с этой формы, нужно было бы еще куки добавить в запрос. И еще скажу, что часто сайты требуют чтобы был установлен заголовок UserAgent, иначе не обрабатывают запрос, не важно GET/POST он или другой.

Домашнее задание

Попробуйте добавить комментарий к этому уроку программно, текст комментария - "I did it!". Только попрошу сильно не увлекаться, за спам накажу :) За первые комментарии, которые будут для того, чтобы проанализировать данные запроса не беспокойтесь, буду их подчищать, и пусть текст этого комментария будет "For test". И делайте дз от имени своего пользователя, а не test1111. Успехов!
Понравилась статья? Подпишись на рассылку и узнавай первым о новых уроках по почте!


Поделиться с друзьями:
28 июл 2016 20:53
Ns_Evol 02 дек 2017 18:12
I Did It

test1111 02 дек 2017 18:07
I Did It

02 дек 2017 18:05
I Did It

Ns_Evol 02 дек 2017 17:58
test again

Ns_Evol 02 дек 2017 17:37
For test

Ns_Evol 02 дек 2017 17:33
"For test"

Markemacy 30 ноя 2017 14:36
Нужен ремонт квартиры в Москве или Московской области?
Ищите тех, кто выполнит качественно всю грязную работу?
Нужны профессионалы в ремонте?

Наша компания предоставляет большой спектр услуг в Москве и Москвовской Области:

Демонтаж старых покрытий
Шпатлевка стен
Окраска потолка
Поклейка стен обоями
Устройство ПВХ панелей в ванной
Электромонтажные работы
Укладка ламината, линолеума, плитки
Вывоз мусора, уборка помещения

Бесплатный замер на следующий день
Без предоплаты поэтапная оплата работы
Всё "под ключ" от закупок до вывоза мусора

Звоните прямо сейчас и мы сделаем все, что Вам нужно в быстрый срок!
P.S. Цель нашей компании состоит в том, чтобы делать своих клиентов счастливыми.
Вступайте в их ряды с нашей помощью.

Звоните прямо сейчас 7 (925) 306-95-32

Diesel 30 ноя 2017 14:27
ДИЗЕЛЬНЫЙ ГЕНЕРАТОР АД-800С-Т400-1РМ5

Основная мощность: 800 кВт
Двигатель: Baudouin 12M26G1100/5e2
Генератор: TSS-SA-800
ГАБАРИТНЫЕ РАЗМЕРЫ (Д;Ш;В; ММ) 4121x1992x2400
РЕСУРС РАБОТЫ ДО КАП. РЕМОНТА (Ч) 30000
ГАРАНТИЯ, СРОК (МЕС) 36

Также поставляем дизельные, бензиновые генераторы мощностью от 1 до 1500 кВт, монтаж, гарантия, сервис.

Diesel 27 ноя 2017 01:32
ДИЗЕЛЬНЫЙ ГЕНЕРАТОР АД-800С-Т400-1РМ5

Основная мощность: 800 кВт
Двигатель: Baudouin 12M26G1100/5e2
Генератор: TSS-SA-800
ГАБАРИТНЫЕ РАЗМЕРЫ (Д;Ш;В; ММ) 4121x1992x2400
РЕСУРС РАБОТЫ ДО КАП. РЕМОНТА (Ч) 30000
ГАРАНТИЯ, СРОК (МЕС) 36

Также поставляем дизельные, бензиновые генераторы мощностью от 1 до 1500 кВт, монтаж, гарантия, сервис.

Отдел продаж - 7|951|0679050

Bactefort 17 ноя 2017 10:37
эффективное уничтожение абсолютно всех видов паразитов любого происхождения;
препятствие для дальнейшего развития и размножения паразитов;
повышение сопротивляемости организма человека к заражениям различных видов;
укрепление иммунной системы;
максимально благоприятное воздействие на состояние организма человек в целом;
невысокая стоимость, доступная каждому.

writacag 16 ноя 2017 17:54
Работа на дому через интернет весьма популярна, прибыльна и удобна.
Ежедневно количество людей, бросающих офисы и зарабатывающих более крупные суммы,
становится все больше и больше. Так может абсолютно каждый,
просто необходимо владеть специальной информацией. И мы готовы с вами ей поделиться.
Сегодня тот день, когда вы можете изменить свою судьбу
в лучшую сторону и начать зарабатывать сотнями тысяч рублей ежемесячно!
Не упустите свой шанс! Мы предлагаем ознакомиться с нашим предложением на сайте >> zakaz.exrabota.ru <<

qnikacag 16 ноя 2017 12:06
Пройдите 1 регистрацию, сделайте 2 действия
и получайте от 8950 рублей каждые сутки в автоматическом режиме.

Мы гарантируем:
- Первый заработок в течении 60 минут.
- Стабильный доход 24 часа в сутки.
- Поступление денег без задержек.
- Для России, стран СНГ и Европы.
- Без вложений и установки ПО.
- Специально для новичков и людей без опыта.

Более подробная информация у нас на сайте. ( prosto.exrabota.ru )

Василиса 15 ноя 2017 22:53
Стабильная работа с обучением, высокая оплата!

Вы работаете дома! Полностью честно и прозрачно;
Доступно для всех - неважно кто вы и какой у вас опыт работы в интернете!
Вы будете зарабатывать: свыше четырёх тысяч рублей в день!
Сложность: Несложно!
Оплата: - уже на следующий деньги у вас на счету!

Ознакомтесь с условиями у нас на сайте. > pisma.exrabota.ru < Скопируйте и вставьте в адресную строку Вашего браузера.

Avito321vom 21 окт 2017 11:52
<b>Пополение баланса Авито (Avito) за 50%</b> | <b>Телеграмм @a1garant</b>

<b>Здравствуйте, дорогие друзья!</b>

Рады будем предоставить Всем вам сервис по пополнению баланса на действующие активные аккаунты Avito (а также, совершенно новые). Если Вам требуются конкретные балансы - пишите, будем решать. Потратить можно на турбо продажи, любые платные услуги Авито (Avito).

<b>Аккаунты не Брут. Живут долго.</b>

Процент пополнения в нашу сторону и стоимость готовых аккаунтов: <b>50% от баланса на аккаунте.</b>
Если нужен залив на ваш аккаунт, в этом случае требуются логин и пароль Вашего акка для доступа к форме оплаты, пополнения баланса.
Для постоянных клиентов гибкая система бонусов и скидок!

<b>Гарантия: </b>

<b>И, конечно же ничто не укрепляет доверие, как - Постоплата!!!</b> Вперед денег не просим...

Рады сотрудничеству!

<b>Заливы на балансы Авито</b>
________

авито монблан кошельки
как зарегистрировать новый аккаунт на авито
восстановить аккаунт на авито по номеру телефона
подать объявление на авито за деньги
деньги ссср купить на авито

Dol77larpa 14 окт 2017 20:52
Были заплачены деньги 6000 за покупку базы данных и просто швырнул. с другого аккаунта к нему обратились, уже специально на 100р была сделка на выборку и тоже швырнул.

непорядочный гандон. кинет 100р%

Телеграм @japoshka кидальная дешевка

asd@asd.by 11 окт 2017 23:01
TEST

asd@asd.by 11 окт 2017 22:58
TEST

asd@asd.by 11 окт 2017 22:57
TEST

asd@asd.by 11 окт 2017 22:55
TEST

Avito321vom 28 сен 2017 19:33
<b>Пополение баланса Авито (Avito) за 50%</b> | <b>Телеграмм @a1garant</b>

<b>Мое почтение, дорогие друзья!</b>

Рады предоставить Всем вам сервис по пополнению баланса на действующие активные аккаунты Avito (а также, совершенно новые). Если Вам надо конкретные балансы - пишите, будем решать. Потратить можно на турбо продажи, любые платные услуги Авито (Avito).

<b>Аккаунты не Брут. Живут долго.</b>

Процент пополнения в нашу сторону и стоимость готовых аккаунтов: <b>50% от баланса на аккаунте.</b>
Если нужен залив на ваш аккаунт, в этом случае требуются логин и пароль Вашего акка для доступа к форме оплаты, пополнения баланса.
Для постоянных заказчиков гибкая система бонусов и скидок!

<b>Гарантия: </b>

<b>И, конечно же ничто не укрепляет доверие, как - Постоплата!!!</b> Вперед денег не просим...

Рады сотрудничеству!

<b>Заливы на балансы Авито</b>
________

авито номер подтвержден в аккаунте если это ваш аккаунт
как привязать номер к другому аккаунту авито
купить акк wot авито
кошельки майкл корс на авито
авито продать деньги

26 сен 2017 13:31
все работает :)

26 сен 2017 13:29
все работает :)

DreamKot 26 сен 2017 13:12
а почему без имени передает ?

26 сен 2017 13:09
все работает :)

26 сен 2017 13:08
все работает :)

DreamKot 26 сен 2017 13:07
d

26 сен 2017 13:06
все работает :)

DreamKot 26 сен 2017 12:50
Это тест : )

Alena 26 сен 2017 12:20
Интересная работа с обучением, зарплата высокая!

Вы работаете дома! Полностью честно и прозрачно;
Доступно для всех - неважно кто вы и какой у вас опыт работы в интернете!
Вы будете зарабатывать: свыше четырёх тысяч рублей в день!
Сложность: Несложно!
Оплата: - уже на следующий деньги у вас на счету!

Ознакомтесь с условиями на нашем сайте. > realno-money.tk < Скопируйте и вставьте в адресную строку Вашего браузера.

Nataliehic 24 сен 2017 23:34
Данное сообщение размещено здесь с помощью XRumer + XEvil 3.0
XEvil 3.0 - революционное приложение, способное обходить практически любую антибот-защиту.
Распознавание капчи Google, Facebook, Yandex, VKontakte, Captcha Com и свыше 8400 тысяч других типов!
Вы читаете это - значит, это работает! ;)
Подробности на официальном сайте XEvil.Net, есть бесплатная демо-версия.

test1111 14 сен 2017 10:45
hi2 for test

test1111 14 сен 2017 10:30
Hi for test

Александр 09 сен 2017 19:57
я сделал это

Александр 09 сен 2017 19:52
test

test1111 04 сен 2017 19:17
I did it!

04 сен 2017 19:16
I did it!

test1111 04 сен 2017 19:16
I did it!

test1111 04 сен 2017 19:15
I did it!

test1111 04 сен 2017 19:10
I did it!

02 сен 2017 18:01
Прости админ, я случайно)00)000))

01 сен 2017 15:45
Прости админ, я случайно)00)000))

01 сен 2017 15:43
Прости админ, я случайно)00)000))

01 сен 2017 15:24
Прости админ, я случайно)00)000))

01 сен 2017 15:24
Прости админ, я случайно)00)000))

01 сен 2017 15:24
Прости админ, я случайно)00)000))

01 сен 2017 15:24
Прости админ, я случайно)00)000))

01 сен 2017 15:22
Прости админ, я случайно)00)000))

01 сен 2017 15:20
Прости админ, я случайно)00)000))

01 сен 2017 15:15
Прости админ, я случайно)00)000))

tester228 01 сен 2017 15:14
Я научился писать коммент, меня любит мама теперь

tester228 01 сен 2017 14:54
Попытка номер 9

01 сен 2017 14:53
Попытка номер 9

01 сен 2017 14:52
Попытка номер 9

01 сен 2017 14:48
Попытка номер 9

tester228 01 сен 2017 14:45
Попытка номер 9

tester228 01 сен 2017 14:20
Я срал как дед, ломал деревья

tester228 01 сен 2017 14:13
Я дик ю

01 сен 2017 13:22
Не робит(

lalinacag 28 авг 2017 19:00
Интересная работа, зарплата ежедневно!

Вы работаете дома! Полностью честно и прозрачно;
Доступно для всех - неважно кто вы и какой у вас опыт работы в интернете!
Вы будете зарабатывать: свыше четырёх тысяч рублей в день!
Сложность: Несложно!
Оплата: - уже на следующий деньги у вас на счету!

Ознакомтесь с условиями у нас на сайте. > realno-money.tk < Скопируйте и вставьте в адресную строку Вашего браузера.

test1111 21 авг 2017 19:11
спасибо автору ресурса, выучил работу с инетом

test1111 21 авг 2017 19:10
все, меня нет
пошёл спамить

test1111 21 авг 2017 19:09
кажется получилось

test1111 21 авг 2017 18:52
wtf

test1111 21 авг 2017 18:50
egh

ddt 21 авг 2017 18:19
wegwrg

test1111 21 авг 2017 18:02
n

wqeewq 04 авг 2017 20:16
weqweasddsa

test1111 03 авг 2017 09:52
test111

02 авг 2017 21:33
Не робит(

02 авг 2017 19:33
newtestx2

test1111 02 авг 2017 19:32
newtestx

test1111 02 авг 2017 19:25
testx

test1111 02 авг 2017 19:06
testtest

test1111 02 авг 2017 19:01
komment

test1111 02 авг 2017 18:56
asdasd

test1111 02 авг 2017 18:47
komentari

test1111 31 июл 2017 16:01
for test

test1111 31 июл 2017 16:01
for test

test1111 31 июл 2017 15:07
for test

26 июл 2017 15:37
Не робит(

26 июл 2017 14:54
Не робит(

26 июл 2017 14:54
Не робит(

26 июл 2017 14:54
Не робит(

26 июл 2017 14:54
Не робит(

26 июл 2017 14:53
Не робит(

test1111 20 июл 2017 09:02
I did it

test1111 20 июл 2017 08:46
for test

test1111 20 июл 2017 08:28
for test

test1111 20 июл 2017 08:23
for test

test1111 20 июл 2017 08:14
for test

test1111 20 июл 2017 08:08
for test

test1111 20 июл 2017 07:55
for test

test1111 20 июл 2017 07:54
for test

Ignisz 13 июл 2017 00:38
I did it!

test1111 13 июл 2017 00:36
I did it!

test1111 13 июл 2017 00:31
test

13 июл 2017 00:27
I did it!

13 июл 2017 00:24
I did it!

Ignisz 13 июл 2017 00:19
For test

apofigen 02 июл 2017 14:46
I did it!

apofigen 02 июл 2017 14:37
for test

test1111 18 июн 2017 21:53
g

test1111 08 июн 2017 00:24
I did i t()

Артур666 28 май 2017 14:53
I Did It (Twice)

Артур666 28 май 2017 14:23
For Test

Артур666 28 май 2017 13:52
I did it!

test1111 18 май 2017 00:15
I did It

18 май 2017 00:14
I did It

test1111 17 май 2017 22:58
I did it

test1111 14 май 2017 10:24
000

test1111 13 май 2017 22:54
Toka

test1111 03 май 2017 12:28
1

test1111 02 май 2017 11:05
1

01 май 2017 17:02
Извините) Пошалил маленько

test1111 01 май 2017 16:51
for test

test1111 04 апр 2017 22:21
comment

test1111 03 апр 2017 21:39
да блин как мне оставить коммент от имени test1111?

03 апр 2017 21:23
да блин как мне оставить коммент от имени test1111?

test1111 03 апр 2017 21:21
2

test1111 03 апр 2017 20:38
1

03 апр 2017 20:31
automaticly created comment

test1111 03 апр 2017 20:27
ololo

03 апр 2017 16:12
some comment that i wrote

test1111 03 апр 2017 16:11
some comment that i wrote

test1111 03 апр 2017 16:11
testtest

test1111 03 апр 2017 16:10
f

test1111 03 апр 2017 16:05
tyjfh

test1111 03 апр 2017 14:01
Русский Авторизация

03 апр 2017 13:58
Proverka Epta

test1111 03 апр 2017 13:55
For test

test1111 05 мар 2017 12:47
for test

test1111 05 мар 2017 12:21
maza faka da

test1111 05 мар 2017 12:19
for test

test1111 05 мар 2017 12:15
for test

Ambivalence 28 фев 2017 07:17
hellfire

skorpi 28 фев 2017 06:55
41245 1312

test1111 28 фев 2017 02:08
I did it! (Valodya)

test1111 28 фев 2017 02:04
test

19 фев 2017 17:02
I did it

test1111 19 фев 2017 16:57
for test

sadf 13 фев 2017 11:16
<script>alert(123)</script>

Igor 12 фев 2017 14:50
12345

test1111 09 фев 2017 20:27
I did it!

test1111 01 фев 2017 18:12
test

test1111 01 фев 2017 17:16
test

31 янв 2017 16:33
1222222

test1111 31 янв 2017 16:29
1222222

25 янв 2017 11:58
Rabbit

test1111 25 янв 2017 11:54
for test

22 янв 2017 20:41
I did it.

22 янв 2017 20:41
I did it.

1640max 18 янв 2017 17:02
А по-русски получится написать?

1640max 18 янв 2017 17:01
Ogogo zarabotalo!

1640max 18 янв 2017 17:00
For test

28 дек 2016 11:34
I did it!

28 дек 2016 11:33
IDidIT!t

test1111 28 дек 2016 10:37
test

test1111 28 ноя 2016 14:53
For test

guest 17 ноя 2016 12:49
Пишут что непонятно. Мне не понятна эта конструкция:

using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}

guest 17 ноя 2016 12:47
Спасибо за урок!!!

guest 17 ноя 2016 12:43
for test

guest 17 ноя 2016 12:38
For test

Дмитрий 12 ноя 2016 00:35
Thanks for the lessons !

Дмитрий 12 ноя 2016 00:29
I did it

Dmitry1986 12 ноя 2016 00:15
for test

Dmitry1986 12 ноя 2016 00:10
I did it

Dmitry1986 12 ноя 2016 00:08
I did it !

test1111 11 ноя 2016 22:58
I did it!

test1111 11 ноя 2016 22:57
I did it!

test1111 08 ноя 2016 23:40
У меня такая проблема: при добавлении строки заголовка Cookie в код IDE VS2015 ругается. По всей видимости ей не нравится символы ";", коих много в значении Cookie. Помогите!

andrey 08 ноя 2016 06:11
got it!

andrey 08 ноя 2016 06:09
test

Андрей 08 ноя 2016 05:46
хорошие уроки

test1111 30 окт 2016 20:27
222222222222

test1111 30 окт 2016 20:25
test

77777 30 окт 2016 20:22
Необработанное исключение типа "System.Net.WebException" в System.dll

Дополнительные сведения: Удаленный сервер возвратил ошибку: (502) Недопустимый шлюз.

Titovich 26 окт 2016 17:44
I did it!

Amb1 19 окт 2016 17:16
I Did It!

test1111 19 окт 2016 17:07
Look For

test1111 16 окт 2016 12:16
hello

02 окт 2016 20:39
I did it

ro26 02 окт 2016 20:37
For test

Unchhh 26 сен 2016 09:57
I DID IT

Unchhh 26 сен 2016 09:48
For test

Flamingo 20 сен 2016 20:17
Крутые уроки, побольше таких

Flamingo 20 сен 2016 19:59
I Did It

Odis 15 сен 2016 00:11
Выполнил домашнее задание методом тупого копирования кода с минимальными изменениями, но понимания того, что именно я делаю так и не появилось. Если можно, то можно как то более подробно объяснить этот урок?

Odis 15 сен 2016 00:08
Odis did it!

Odis 15 сен 2016 00:06
Вообще ничего не понятно.

Odis 14 сен 2016 23:47
For test

vladpap 05 сен 2016 21:14
For test

Kompoman32 29 авг 2016 16:47
I did it

Kompoman32 29 авг 2016 16:20
For test

ew4abc 17 авг 2016 03:41
Спасибо за хороший урок :) Давно хотел узнать как это делать.

ew4abc 17 авг 2016 03:40
I did it.

ew4abc 17 авг 2016 03:29
For test.

John Cena 12 авг 2016 18:00
I did it.

Jhon Cena 12 авг 2016 17:58
For test.

Gost 12 авг 2016 17:51
Tested successful!

LokPi 12 авг 2016 17:39
Отличный урок. Спасибо!

Dan 10 авг 2016 08:52
I did it

Valentins 02 авг 2016 11:03
For test.

test1111 29 июл 2016 23:41
I did it!


Добавить комментарий:

Имя (обязат.)
E-mail (обязат., не публикуется)


Для вставки ваших программ пользуйтесь кнопкой "исходный код"
Вёрстка сайта с нуля

Уникальный Видеокурс!

"Научись верстать сайты и заработай на этом!"

Получить видеокурс

Подпишись на курс по программированию, и узнавай первым о новых уроках!

RSS подписка Страничка Вконтакте Мы в Twitter

Ошибка в тексте? Выделите ее мышкой и нажмите Ctrl+Enter
Поблагодарить автора: Номер карты (ПриватБанк)
5168 7572 4170 8660
WebMoney
R372544961915 U685637142028 Z999792764387
Наверх
Система Orphus