Отправка 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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д