[ruby] Net::HTTP#post

Net::HTTP#post [ruby] - Programmation

Marsh Posté le 26-08-2002 à 13:19:25    

Bon, c'est sans doute très con, mais j'arrive pas a faire passer les données par POST...
 
Le code :  

Code :
  1. require 'net/http'
  2. #parametres
  3. path = "/services/servlet/Test"
  4. data = "bla=hop&pika=plop"
  5. #appel de la page
  6. resp, data = '', ''
  7. Net::HTTP.start("localhost", 8082) {|server|
  8.     resp, data = server.post(path, data)
  9. }
  10. puts "#{resp.code} #{resp.message}"
  11. #sauvegarde de la page renvoyee
  12. File.open("temp.html", "w+" ) do |fd|
  13.     fd.puts data
  14. end


 
 
Pour vérifier si ca passe, j'ai une servlet tout con qui me liste les parametres :
 

Code :
  1. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  2. throws ServletException, IOException
  3. {
  4.    PrintWriter out = response.getWriter();
  5.    out.println("Voici les parametres recus :" );
  6.    Enumeration e = request.getParameterNames();
  7.    while(e.hasMoreElements())
  8.    {
  9.        String s = (String)e.nextElement();
  10.        out.println(s + " : " + request.getParameter(s));
  11.    }
  12. }


 
La servlet passe, y'a pas de probleme. Par contre en passant par mon script ruby les données ne sont pas envoyées... Pourtant d'apres http://www.rubycentral.com/book/lib_network.html mes parametres sont corrects :  
 

aSession.post( path, data, headers=nil ) {| result | block } -> anArray
 
Sends data to path using an HTTP POST request. headers is a hash containing additional headers. Assigns the result to data or to the block, as for Net_HTTP#get. Returns a two-element array containing an HTTPResponse object and the reply body.

 
Bref, je pense que je dois avoir de la merde dans les yeux, mais je vois pas.

Reply

Marsh Posté le 26-08-2002 à 13:19:25   

Reply

Marsh Posté le 26-08-2002 à 14:13:33    

Bon, déja je suis trop con parce que si je mets data = '' il reste plus grand chose dedans... Mais ca change rien au probleme, vu que j'avais déja testé autrement et que en mettant le code comme ca ca marche pas mieux :
 

Code :
  1. ..
  2. data = "bla=hop&pika=plop"
  3. #appel de la page
  4. resp, blah = '', ''
  5. Net::HTTP.start("localhost", 8082) {|server|
  6.    resp, blah = server.post(path, data)
  7. }
  8. ...

Reply

Marsh Posté le 27-08-2002 à 16:04:19    

up ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed