24.01.2012, 17:16
#1
Рыцарь-лейтенант
Регистрация: 21.06.2010
Сообщений: 425
Популярность: 1817
Сказал(а) спасибо: 247
Поблагодарили 566 раз(а) в 147 сообщениях
Упрошенная отправка пакетов и парсинг
Для новичков в программировании, ток прошу не засоряйте форум беспонтовыми прогами)))
Отправка запросов ПОСТ
Код:
public string send_POST(string url, string post)
{
string Response_POST = "", StrNewValue;
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
if (checkBox1.Checked)
{
req.Proxy = new WebProxy("127.0.0.1", 8888);
}
req.ContentType = "application/x-www-form-urlencoded";
StrNewValue = post;
req.ContentLength = StrNewValue.Length;
StreamWriter Soup = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
Soup.Write(StrNewValue);
Soup.Close();
StreamReader stin3 = new StreamReader(req.GetResponse().GetResponseStream());
Response_POST = stin3.ReadToEnd();
stin3.Close();
}
catch { }
return Response_POST;
}
ГЕТ
Код:
public string send_GET(string url)
{
string str5 = "";
try
{
HttpWebRequest request5 = (HttpWebRequest)WebRequest.Create(url);
if (checkBox1.Checked)
{
request5.Proxy = new WebProxy("127.0.0.1", 8888);
}
HttpWebResponse response1 = (HttpWebResponse)request5.GetResponse();
str5 = new StreamReader(response1.GetResponseStream(), Encoding.UTF8).ReadToEnd();
}
catch { }
return str5;
}
Парсер
Код:
public string parse(string all, string l, string r, string razd)
{
string res = "";
Regex g5 = new Regex(l + "(.*?)" + r);
if (g5.IsMatch(all))
{
MatchCollection matches = g5.Matches(all);
foreach (Match y in matches) { res += y.Groups[1].ToString() + razd; }
}
return res;
}
Пример!!!
Создаем новый проект с кнопкой и чекбоксом
[
Ссылки могут видеть только зарегистрированные пользователи. ]
Жмем два раза на кнопку
Пишем там это
Код:
string otvet = send_POST("http://109.234.157.94/prison/universal.php?getInfo", "key=091f3644b5dcf9bc0e3b1ead2f1d12c1&sig=6d7c635916fc0df00cafaa95e7ba7e9e&method=getInfo&user=63435282");
string avtoritet = parse(otvet, "<rating>", "</rating>", "");
MessageBox.Show("Авторитет: "+avtoritet);
[
Ссылки могут видеть только зарегистрированные пользователи. ]
Код целиком
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Web;
using System.Threading;
using System.Text.RegularExpressions;
namespace Threads
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string otvet = send_POST("http://109.234.157.94/prison/universal.php?getInfo", "key=091f3644b5dcf9bc0e3b1ead2f1d12c1&sig=6d7c635916fc0df00cafaa95e7ba7e9e&method=getInfo&user=63435282");
string avtoritet = parse(otvet, "<rating>", "</rating>", "");
MessageBox.Show("Авторитет: "+avtoritet);
}
public string send_POST(string url, string post)
{
string Response_POST = "", StrNewValue;
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
if (checkBox1.Checked)
{
req.Proxy = new WebProxy("127.0.0.1", 8888);
}
req.ContentType = "application/x-www-form-urlencoded";
StrNewValue = post;
req.ContentLength = StrNewValue.Length;
StreamWriter Soup = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
Soup.Write(StrNewValue);
Soup.Close();
StreamReader stin3 = new StreamReader(req.GetResponse().GetResponseStream());
Response_POST = stin3.ReadToEnd();
stin3.Close();
}
catch { }
return Response_POST;
}
public string send_GET(string url)
{
string str5 = "";
try
{
HttpWebRequest request5 = (HttpWebRequest)WebRequest.Create(url);
if (checkBox1.Checked)
{
request5.Proxy = new WebProxy("127.0.0.1", 8888);
}
HttpWebResponse response1 = (HttpWebResponse)request5.GetResponse();
str5 = new StreamReader(response1.GetResponseStream(), Encoding.UTF8).ReadToEnd();
}
catch { }
return str5;
}
public string parse(string all, string l, string r, string razd)
{
string res = "";
Regex g5 = new Regex(l + "(.*?)" + r);
if (g5.IsMatch(all))
{
MatchCollection matches = g5.Matches(all);
foreach (Match y in matches) { res += y.Groups[1].ToString() + razd; }
}
return res;
}
}
}
Последний раз редактировалось xFroLx; 24.01.2012 в 17:33 .
6 пользователя(ей) сказали cпасибо:
26.01.2012, 17:59
#2
Разведчик
Регистрация: 14.12.2010
Сообщений: 44
Популярность: 17
Сказал(а) спасибо: 17
Поблагодарили 73 раз(а) в 70 сообщениях
Re: Упрошенная отправка пакетов и парсинг
Было бы совсем замечательно пояснение наиболее заковыристых моментов , т.к. мне как новичку мало понятно , к примеру такой момент как
if (g5.IsMatch(all))
{
MatchCollection matches = g5.Matches(all);
foreach (Match y in matches) { res += y.Groups[1].ToString() + razd; }
}
или
string otvet = send_POST("http://109.234.157.94/prison/universal.php?getInfo", "key=091f3644b5dcf9bc0e3b1ead2f1d12c1&sig=6d7c6359 16fc0df00cafaa95e7ba7e9e&method=getInfo&user=63435 282");
string avtoritet = parse(otvet, "<rating>", "</rating>", "");
MessageBox.Show("Авторитет: "+avtoritet);
Рас уж для новичков , то было бы не плохо с пояснениями , а не как для мартышек , только копи-пастить и все )
Ещё бы было очень полезно какую нибудь инфу про try-catch для чего эти методы используются в данной ситуации , только на более понятном человеческом языке. Т.к. в нете очень заумно написано и получается выполнение неосмысленных действий....
Добавлено через 2 минуты
И ещё на шарпе код будет выглядеть так же ?
________________
Программист - это человек превращающий кофе в программный код.(с)
Последний раз редактировалось Sleepy_Master; 26.01.2012 в 18:02 .
Причина: Добавлено сообщение
26.01.2012, 21:12
#3
Старший сержант
Регистрация: 31.01.2011
Сообщений: 182
Популярность: 887
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 136
Поблагодарили 494 раз(а) в 220 сообщениях
Re: Упрошенная отправка пакетов и парсинг
Последний раз редактировалось Gamer1912; 26.01.2012 в 21:15 .
18.03.2012, 19:26
#4
Разведчик
Регистрация: 01.03.2012
Сообщений: 5
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Упрошенная отправка пакетов и парсинг
Подскажите пожалуйста, как можно сохранить всю страницу в массив? В консольной программе C++.
Последний раз редактировалось siegKaLaSh; 25.03.2012 в 16:48 .
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Похожие темы
Тема
Автор
Раздел
Ответов
Последнее сообщение
[Помогите!] Отправка пакетов в L2phx
BanQui
Общение и обсуждение Aion
10
22.07.2011 23:26
Парсинг.
WiLLi-WindowS
С/С++
1
01.06.2011 18:07
Отправка пакетов
bossik
Rising Force Online
8
10.09.2008 15:08
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 21:31 .