|
|
|
![]() |
|
Strumenti |
![]() |
#1 | |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
|
[HTTP] POST + cookies
Allora..
è da ieri sera ke mi sto facendo delle segone mentali per cercare di loggarmi tramite un'applicazione client alla mia web-mail... In pratica però c'è qualcosa che non mi quadra.. e non so se è legato ai cookie o a qualcos'altro ![]() posto il codice ruby che dovrebbe essere piuttosto comprensibile: Codice:
require 'net/http' file = File.open('index.html', 'w') res = Net::HTTP.new('tin.alice.it', 80).start do |http| #crea una connessione HTTP col server. get = Net::HTTP::Get.new('/') #effettua un primo get per ottenere il cookie response = http.request(get) cookie = response.response['set-cookie'].split(';')[0] #memorizza il cookie response.each {|key, val| puts key + ' = ' + val} #stampa tutte le properties della response .. tanto x capirci qualcosa res1 = Net::HTTP.new('communicator.virgilio.it', 80).start do |http1| #inizia una nuova connessione http verso il server utilizzato per l'autenticazione post = Net::HTTP::Post.new('/asp/a3login.asp') #inizializza il post specificando la pagina che lo dovrà ricevere post.set_form_data({'a3aid'=>'comhptin', 'a3afep'=>'http://tin.virgilio.it/Error/mail_error.html', 'USER'=>'*****', 'DOMAIN'=>'tin.it', 'PASS'=>'*****', 'Act_Login'=>'Entra', 'Act_Login.x'=>'37', 'Act_Login.y'=>'5'}) #inizializza i dati del form post['Cookie'] = cookie #inserisce il cookie nel post file.puts http.request(post) #effettua il post e scrive su file la response end end Quote:
qualcuno ha esperienza di login in siti web tramite il metodo POST in qualsiasi linguaggio che ne capisca qualcosa di cosa è successo? Perchè io onestamente non ci sto capendo + niente.... ![]()
__________________
![]() |
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12103
|
trovata la soluzione
![]() è bastato usare la libreria 'mechanize' di ruby che tratta in maniera trasparente al povero programmatore le pagine nascondendogli la complessità di cookies e quant'altro. Per completezza posto il codice casomai dovesse servire a qualke altro povero sventurato ![]() Codice:
require 'rubygems' require 'mechanize' agent = WWW::Mechanize.new page = agent.get 'http://tin.alice.it' authentication_form = page.form 'wmvirgilio' authentication_form.DOMAIN = 'tin.it' authentication_form.USER = '*****' authentication_form.PASS = '*****' page = agent.submit(authentication_form) redirect_form = page.form 'RedirectForm' page = agent.submit(redirect_form) AAform = page.form 'AAform' page = agent.submit(AAform) puts page.body ![]() ma questo è un altro problema ![]()
__________________
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:35.