Отправка GET/POST запроса сокетами - C#

Узнай цену своей работы

Формулировка задачи:

Здравия. В общем, пытаюсь отправлять GET запрос таким кодом:
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(Url, 80);
byte[] contentLenght = Encoding.ASCII.GetBytes(Data);
string[] masRequestString ={
"GET /"+Data+" HTTP/1.1\r\n" ,
"Host: "+Url+"\r\n",
"User-Agent: "+textBox1.Text+"\r\n",
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n",
"Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n",
"Referer: "+textBox2.Text+"\r\n"};
string request = string.Concat(masRequestString);
Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
socket.Send(bytesSent, bytesSent.Length, 0);
Byte[] bytesReceived = new Byte[0x400];
int bytes = socket.Receive(bytesReceived, bytesReceived.Length, 0);
string content = Encoding.ASCII.GetString(bytesReceived, 0, bytes);
Запрос ВРОДЕ отправляется, а смотря на мониторы сниффера - нет. Фиддлер и вайршарк просто не видят этот запрос, почему так?
Вверх
Вверх

Решение задачи: «Отправка GET/POST запроса сокетами»

textual
Листинг программы
string address = "http://example.com/folder/file?a=1&b=2";
using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
    Uri uri = new Uri(address);
    if (!uri.Scheme.Equals("http", StringComparison.OrdinalIgnoreCase) && !uri.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase))
    {
        return;
    }
    socket.Connect(uri.Host, uri.Port);
    string req = string.Format(
        @"GET {0} HTTP/1.1
Host: {1}
User-Agent: {2}
Connection: close
 
"
        , uri.PathAndQuery
        , uri.Host
        , "MegaSuperApplication"
    );
    socket.Send(Encoding.ASCII.GetBytes(req));
    byte[] responseBytes = new byte[60000];
    int received = socket.Receive(responseBytes);
    string responsePart = Encoding.ASCII.GetString(responseBytes, 0, received);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы