Bon, c'est sans doute très con, mais j'arrive pas a faire passer les données par POST...
Le code :
Code :
- require 'net/http'
- #parametres
- path = "/services/servlet/Test"
- data = "bla=hop&pika=plop"
- #appel de la page
- resp, data = '', ''
- Net::HTTP.start("localhost", 8082) {|server|
- resp, data = server.post(path, data)
- }
- puts "#{resp.code} #{resp.message}"
- #sauvegarde de la page renvoyee
- File.open("temp.html", "w+" ) do |fd|
- fd.puts data
- end
|
Pour vérifier si ca passe, j'ai une servlet tout con qui me liste les parametres :
Code :
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException
- {
- PrintWriter out = response.getWriter();
- out.println("Voici les parametres recus :" );
- Enumeration e = request.getParameterNames();
- while(e.hasMoreElements())
- {
- String s = (String)e.nextElement();
- out.println(s + " : " + request.getParameter(s));
- }
- }
|
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.