2009-11-26 6 views
2

Comment créer une requête POST en utilisant TCPSocket dans Ruby? Existe-t-il un format spécial pour faire un post? J'ai le suivant, mais je reçois une erreur d'analyse (il est pour un serveur de rails):(ruby) ruby ​​sockets: comment créer une requête POST?

require 'socket' 

s = TCPSocket.open("localhost", 3000) 
s.puts("POST /<controller>/<action> HTTP/1.1") 
s.puts("Host: localhost:3000") 
s.puts("Content-Type: application/x-www-form-urlencoded") 
s.puts("Content-Length: 103\r\n\r\n") 
+0

Ça a l'air ok à première vue. Je suppose que et sont des espaces réservés et que vous affichez vraiment les valeurs correctes ... Avez-vous alors réellement suivi avec 103 octets de données? –

Répondre

1

Le champ Host: doit indiquer le numéro de port et non.

1

qui peut this article trouvé être utile pour vous. J'aime particulièrement le commentaire d'Eric Hodel sur la façon de le faire avec Net :: HTTP. Je sais que vous avez spécifié que vous vouliez faire TCPSocket.send (sans doute parce que vous travaillez sur quelque chose d'un peu plus intéressant que simplement envoyer des POST), mais si vous ne faites pas quelque chose de plus compliqué, vous pouvez utiliser Net :: HTTP et réjouissez-vous à quel point c'est facile.

Questions connexes