|
Авторизация и парсинг строки - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
27.04.2013, 15:28
|
#16
|
|
|
|
Разведчик
|
Регистрация: 14.10.2011
Сообщений: 13
Популярность: 559
Сказал(а) спасибо: 0
Поблагодарили 16 раз(а) в 2 сообщениях
|
Re: Авторизация и парсинг строки
|
Цитата: |
|
|
|
|
|
|
Сделал как Вы сказали:
Код:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://game-10.ru/testreg.php");
void Post_g()
{
string Login = "kayrito";
string Password = "QWERTYUIOP";
string authString = "login=" + Login + "password=" + Password + "submit=%C2%EE%E9%F2%E8";
В ответе получил:"Вы ввели не всю информацию, вернитесь назад и заполните все поля!"
|
|
|
27.04.2013, 15:30
|
#17
|
|
|
|
Разведчик
|
Регистрация: 28.12.2010
Сообщений: 48
Популярность: 202
Сказал(а) спасибо: 21
Поблагодарили 21 раз(а) в 17 сообщениях
|
Re: Авторизация и парсинг строки
Еще раз сравни свою строку authString и мою :
Код:
string authString = "login=" + Login + "&password=" + Password + "&submit=%C2%EE%E9%F2%E";
Не замечаешь у себя пропажу "&" ?
и в submit у тебя лишняя "8" в конце.
Если все правильно сделаешь ты получишь куки и ответ вида :
|
Цитата: |
|
|
|
|
|
|
|
|
<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html> |
|
|
|
|
|
А что дальше делать я не знаю)
Последний раз редактировалось xSkyDev; 27.04.2013 в 15:32.
|
|
|
27.04.2013, 15:32
|
#18
|
|
|
|
Разведчик
|
Регистрация: 14.10.2011
Сообщений: 13
Популярность: 559
Сказал(а) спасибо: 0
Поблагодарили 16 раз(а) в 2 сообщениях
|
Re: Авторизация и парсинг строки
|
|
|
27.04.2013, 15:33
|
#19
|
|
|
|
Разведчик
|
Регистрация: 28.12.2010
Сообщений: 48
Популярность: 202
Сказал(а) спасибо: 21
Поблагодарили 21 раз(а) в 17 сообщениях
|
Re: Авторизация и парсинг строки
|
|
|
27.04.2013, 15:37
|
#20
|
|
|
|
Разведчик
|
Регистрация: 14.10.2011
Сообщений: 13
Популярность: 559
Сказал(а) спасибо: 0
Поблагодарили 16 раз(а) в 2 сообщениях
|
Re: Авторизация и парсинг строки
Код:
string authString = "login=" + Login + "password=" + Password + "submit=%C2%EE%E9%F2%E";
- не робит.
Код:
string authString = "login=" + Login + "&password=" + Password + "&submit=%C2%EE%E9%F2%E";
-тоже не робит.
|
|
|
27.04.2013, 15:39
|
#21
|
|
|
|
Разведчик
|
Регистрация: 28.12.2010
Сообщений: 48
Популярность: 202
Сказал(а) спасибо: 21
Поблагодарили 21 раз(а) в 17 сообщениях
|
Re: Авторизация и парсинг строки
Вот мой код, авторизация по крайней мере работает, мб до ума доведешь.
Код:
using System.IO;
using System.Text.RegularExpressions;
using System.Net;
Код:
static void Main(string[] args)
{
/////////////////////////////
/////////// Отправка ////////
/////////////////////////////
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(@"http://game-10.ru/testreg.php");
var cookies = new CookieContainer();
request.CookieContainer = cookies;
string param = "login=kayrito&password=QWERTYUIOP&submit=%C2%EE%E9%F2%E8";
var data = new UTF8Encoding().GetBytes(param);
request.Method = "POST";
request.AllowAutoRedirect = true;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
var rstream = request.GetRequestStream();
rstream.Write(data, 0, data.Length);
rstream.Close();
////////////////////////////
///////// Получение ////////
////////////////////////////
Console.WriteLine("Resp");
WebResponse res = request.GetResponse();
Stream ReceiveStream = res.GetResponseStream();
StreamReader sr = new StreamReader(ReceiveStream, Encoding.UTF8);
Char[] read = new Char[256];
int count = sr.Read(read, 0, 256);
string Out = String.Empty;
while (count > 0)
{
String str = new String(read, 0, count);
Out += str;
count = sr.Read(read, 0, 256);
}
Console.WriteLine(Out);
Console.ReadKey();
}
|
|
|
27.04.2013, 15:46
|
#22
|
|
|
|
Разведчик
|
Регистрация: 14.10.2011
Сообщений: 13
Популярность: 559
Сказал(а) спасибо: 0
Поблагодарили 16 раз(а) в 2 сообщениях
|
Re: Авторизация и парсинг строки
|
Цитата: |
|
|
|
|
|
|
|
|
|
Вот мой код, авторизация по крайней мере работает, мб до ума доведешь.
Код:
|
|
|
|
|
|
Спасибо,а не могли бы Вы прокоментить этот кусок кода:
Код:
Console.WriteLine("Resp");
WebResponse res = request.GetResponse();
Stream ReceiveStream = res.GetResponseStream();
StreamReader sr = new StreamReader(ReceiveStream, Encoding.UTF8);
Char[] read = new Char[256];
int count = sr.Read(read, 0, 256);
string Out = String.Empty;
while (count > 0)
{
String str = new String(read, 0, count);
Out += str;
count = sr.Read(read, 0, 256);
}
Console.WriteLine(Out);
Console.ReadKey();
}
А то не совсем его понял.
|
|
|
27.04.2013, 15:59
|
#23
|
|
|
|
Разведчик
|
Регистрация: 28.12.2010
Сообщений: 48
Популярность: 202
Сказал(а) спасибо: 21
Поблагодарили 21 раз(а) в 17 сообщениях
|
Re: Авторизация и парсинг строки
Код:
WebResponse res = request.GetResponse(); // получаем ответ от HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(@"http://game-10.ru/testreg.php");
Stream ReceiveStream = res.GetResponseStream(); // получаем поток для чтения ответа
StreamReader sr = new StreamReader(ReceiveStream, Encoding.UTF8); // читаем поток
// Ниже кусок кода найденный в гугле, который я сам затрудняюсь прокоментировать :D
Char[] read = new Char[256];
int count = sr.Read(read, 0, 256);
string Out = String.Empty;
while (count > 0)
{
String str = new String(read, 0, count);
Out += str;
count = sr.Read(read, 0, 256);
}
Console.WriteLine(Out);
Console.ReadKey();
Но если б код был мой, я б заменил :
Код:
Char[] read = new Char[256];
int count = sr.Read(read, 0, 256);
string Out = String.Empty;
while (count > 0)
{
String str = new String(read, 0, count);
Out += str;
count = sr.Read(read, 0, 256);
}
Console.WriteLine(Out);
На :
Код:
Console.WriteLine(sr.ReadToEnd());
Результат тот же)
Последний раз редактировалось xSkyDev; 27.04.2013 в 16:06.
|
|
|
27.04.2013, 16:08
|
#24
|
|
|
|
Разведчик
|
Регистрация: 14.10.2011
Сообщений: 13
Популярность: 559
Сказал(а) спасибо: 0
Поблагодарили 16 раз(а) в 2 сообщениях
|
Re: Авторизация и парсинг строки
Чет Я уже запутался <html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html> это ответ от серва что залогинился и теперь нужно перейти в сам ЛК ?
|
|
|
27.04.2013, 16:10
|
#25
|
|
|
|
Разведчик
|
Регистрация: 28.12.2010
Сообщений: 48
Популярность: 202
Сказал(а) спасибо: 21
Поблагодарили 21 раз(а) в 17 сообщениях
|
Re: Авторизация и парсинг строки
|
|
|
27.04.2013, 16:15
|
#26
|
|
|
|
Разведчик
|
Регистрация: 14.10.2011
Сообщений: 13
Популярность: 559
Сказал(а) спасибо: 0
Поблагодарили 16 раз(а) в 2 сообщениях
|
Re: Авторизация и парсинг строки
Не подскажите где хранится сам кук?
|
|
|
27.04.2013, 16:19
|
#27
|
|
|
|
Разведчик
|
Регистрация: 28.12.2010
Сообщений: 48
Популярность: 202
Сказал(а) спасибо: 21
Поблагодарили 21 раз(а) в 17 сообщениях
|
Re: Авторизация и парсинг строки
|
Цитата: |
|
|
|
|
|
|
|
|
|
Не подскажите где хранится сам кук?
|
|
|
|
|
|
В теории тут :
Код:
var cookies = new CookieContainer();
request.CookieContainer = cookies;
Но утверждать не могу, я ни разу не работал с куками.
|
|
|
27.04.2013, 16:40
|
#28
|
|
|
|
Разведчик
|
Регистрация: 14.10.2011
Сообщений: 13
Популярность: 559
Сказал(а) спасибо: 0
Поблагодарили 16 раз(а) в 2 сообщениях
|
Re: Авторизация и парсинг строки
Появилась тут мысль,но не могу додумать ее до конца...
Этой функцией:
Код:
void Post_g()
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(@"http://game-10.ru/testreg.php");
var cookies = new CookieContainer();
request.CookieContainer = cookies;
string param = "login=kayrito&password=QWERTYUIOP&submit=%C2%EE%E9%F2%E8";
var data = new UTF8Encoding().GetBytes(param);
request.Method = "POST";
request.AllowAutoRedirect = true;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
var rstream = request.GetRequestStream();
rstream.Write(data, 0, data.Length);
rstream.Close();
}
Только отправляем логин и пасс на серв,тоесть теперь можно повторить туже функцию только в адресе написать:
Код:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(@"http://game-10.ru/
Но тогда как отправить с адресом полученный кук.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 01:57.
|
|