La création d'une crue de la requête HTTP avec les sockets

Je voudrais être en mesure de construire une crue de la requête HTTP et de l'envoyer avec un socket. Évidemment, vous voulez me servir de quelque chose comme urllib et urllib2 mais je ne veux pas l'utiliser.

Il devrait ressembler à quelque chose comme ceci:

import socket

tcpsoc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcpsoc.bind(('72.14.192.58', 80)) #bind to googles ip
tcpsoc.send('HTTP REQUEST')
response = tcpsoc.recv()

Évidemment, vous auriez également à la demande de la page/fichier et les paramètres get et post

Eh bien, en principe, il est tout à fait facile, vous envoyer 'OBTENIR someurl HTTP/1.1" suivi de "l'Hôte: theserversname", suivi par deux retours à la ligne. Ce qui le rend complexe est qu'il y a un million d'options et un million de réponses possibles que vous devez analyser (c'est pourquoi l'une serait useually dire "utiliser une bibliothèque").
vous avez besoin tcpsoc.se connecter à la place de bind. bind est pour les sockets d'écoute...
voici un exemple de connexion: docs.python.org/library/socket.html#example
parfois, nous aimons à réinventer la roue pour avoir une idée de comment le faire mieux.
Ou pour savoir comment la roue fonctionne

OriginalL'auteur Jacob Valenta | 2011-04-22