Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2015, 08:30   #1
Segr2013
 
Регистрация: 29.05.2015
Сообщений: 3
По умолчанию Реализация метода POST

Есть код реализации метода GET. Необходимо реализовать метод POST по такому же принципу.
Код:
private void GET(string url)
{
richTextBox2.Text = "Подождите ...";

//Создание сокета для соединения с сайтом
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

Uri uri = new Uri(url);

//получить IP адресс сайта
System.Net.IPAddress ip = System.Net.Dns.GetHostAddresses(uri.Host)[0];

IPEndPoint point = new IPEndPoint(ip, 80);
socket.Connect(point.Address, point.Port);

StringBuilder requestStringBuilder = new StringBuilder();

//формируется запрос
requestStringBuilder.AppendFormat("GET {0} {1}/1.1\r\n", uri.PathAndQuery, uri.Scheme.ToUpper());
requestStringBuilder.AppendFormat("Host: {0}\r\n", uri.Host);
requestStringBuilder.AppendFormat("Connection: Close\r\n");
requestStringBuilder.Append("\r\n");

//запрос отправляется на сайт
byte[] data = Encoding.ASCII.GetBytes(requestStringBuilder.ToString());
socket.Send(data);

byte[] bytes = new byte[1024];
int bytesRec = 0;
string res ="";

//чтение ответа
bytesRec = socket.Receive(bytes);
res += Encoding.UTF8.GetString(bytes, 0, bytesRec);
while (bytesRec != 0)
{
bytesRec = socket.Receive(bytes);
string tmp = Encoding.UTF8.GetString(bytes, 0, bytesRec);
res += tmp;
}

//разбиваем на заголовок и тело
int t = res.IndexOf("\r\n\r\n");
string header = res.Substring(0, t);
string body = res.Substring(t);

//вывод
richTextBox2.Text = header;
richTextBox1.Text = body;
}

Последний раз редактировалось Stilet; 29.05.2015 в 08:35.
Segr2013 вне форума Ответить с цитированием
Старый 29.05.2015, 08:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну замени слово GEТ на РОSТ...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2015, 08:38   #3
Segr2013
 
Регистрация: 29.05.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну замени слово GEТ на РОSТ...
А разве в POST не надо что-нибудь отправлять на сервер?
Segr2013 вне форума Ответить с цитированием
Старый 29.05.2015, 08:50   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что, твой код ничего на сервер не отправляет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.05.2015, 08:54   #5
Segr2013
 
Регистрация: 29.05.2015
Сообщений: 3
По умолчанию

наверно я понял.
//формируется запрос
requestStringBuilder.AppendFormat(" POST {0} {1}/1.1\r\n", <сюда ссылка на сайт без запроса в заголовке>, uri.Scheme.ToUpper());
requestStringBuilder.AppendFormat(" Host: {0}\r\n", uri.Host);
requestStringBuilder.AppendFormat(" Connection: Close\r\n");
requestStringBuilder.Append("<сюда информация, которую хочу передать>\r\n")
Вот вся разница
Segr2013 вне форума Ответить с цитированием
Старый 29.05.2015, 09:25   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да, только наверное нужно не забывать про параметр Content-length.
Впрочем почитай спецификацию POST.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реализация метода Касиски logorn Помощь студентам 1 18.05.2011 19:28
Реализация метода сканирования на C++ Vivisektor Общие вопросы C/C++ 4 03.04.2011 12:30
реализация метода Хаффмана ShturmBan Помощь студентам 2 13.01.2010 15:46
Реализация метода Хаффмана Minton87 Помощь студентам 0 27.12.2009 20:30
реализация симплекс метода rasmus_rasmus_87 Помощь студентам 7 28.05.2009 06:54