Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    HTTPClient recupero value da form dinamico

    Salve a tutti ho un piccolo problema.
    Ho creato una classe java che mi si interfaccia via HttpClient (ho usato l'httpclient versione 4) ad un sito web contenente un form HTML a cui devo passare semplici valori tipo textfield.

    Non appena eseguo la get su tale sito mi viene scaricato il codice della pagina contenente il form e me la stampa sulla console di Eclipse(fin qui tutto ok).

    Controllando il codice HTML di tale form noto però che oltre ai campi che voglio passare al form..sono contenuti un paio di campi "hidden" contenenti valori numerici generati dinamicamente: uno di questi è il FormID e l'altro è un certo ChallengeToken.

    Come faccio dalla mia classe java a recuperare tali valori per poi rispedirli via Http insieme ai campi textfield che voglio passare al form?

    Avevo pensato che ci fosse un metodo di HttpClient che analizza il contenuto generato dalla response tipo response.getEntity().getContent()... ma non mi è riuscito usarlo.

    Spero di essere stato chiaro.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: HTTPClient recupero value da form dinamico

    Originariamente inviato da digital80
    Avevo pensato che ci fosse un metodo di HttpClient che analizza il contenuto generato dalla response tipo response.getEntity().getContent()... ma non mi è riuscito usarlo.
    La HttpClient è solo una libreria generica per gestire request HTTP lato client. Quindi non "sa" nulla di cosa sia la response (HTML, XML, immagini, ecc...).
    E infatti la getContent() di HttpEntity restituisce un InputStream per leggere in modo generico byte della response.
    Sei tu che "sai" (oppure potresti scoprire dinamicamente) cosa è la response e cosa contiene. Pertanto sei tu che devi analizzare la pagina e andare a cercare tag/attributi che ti interessano.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie mille sei stato chiarissimo. Ho pensato di poter recuperare quei valori perchè pensavo di poterlo fare..così come sono riuscito dalla response a recuperare i cookies che sito mi ha rilasciato per potermi loggare.i cookies erano contenuti nel localContext e pensavo che li dentro ci fossero altre info a me utili.

    Quindi se ho capito bene adesso mi serve solo una funzione java che mi scorre l'input stream fino a recuperare le parti che a me interesssano!

    Azz..la vedo dura...date le mie scandalose conoscenze di java..

  4. #4
    stai semplicemente usando lo strumento sbagliato.
    A te non serve solo un modo per connetterti ma uno strumento per il parsing.
    Prova ad usare una delle tante librerie disponibili (una lista la trovi in http://java-source.net/open-source/html-parsers )

    ciao
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  5. #5
    Grazie.ci sono riuscito semplicemente usando le basilari funzioncine indexOf e substring per collocarmi sulla parte di stringa che mi interessava ed estrapolarla.

    Grazie.

  6. #6

    Java Mozilla Html Parser

    Il mio problema rimane irrisolto.
    Devo recuperare dei dati (via http) contenuti in una pagina web tipo html. Tramite la GET di http ovviamente mi viene restituita la response contenente una serie di Byte grezzi...che vado a convertire in stringa e a leggere.
    Tuttavia ho bisogno di accedere ad alcuni dati specifici contenuti in tale pagina..quindi avrei bisogno di poter convertire tale pagina "grezza" di caratteri in una pagina formattata e strutturata opportunamente html in modo da poter accedere ai campi che voglio.

    Ho trovato in rete il tool "Java Mozilla Html Parser" qualcuno sa dirmi se l'ha usato e se va bene per tale scopo?

    grazie ancora.

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Java Mozilla Html Parser

    Originariamente inviato da digital80
    Tuttavia ho bisogno di accedere ad alcuni dati specifici contenuti in tale pagina..quindi avrei bisogno di poter convertire tale pagina "grezza" di caratteri in una pagina formattata e strutturata opportunamente html in modo da poter accedere ai campi che voglio.
    A patto che alla fine riesci ad avere un String o StringBuffer/StringBuilder con l'intero contenuto della pagina (e questo non è affatto difficile) puoi usare le espressioni regolari per cercare il contenuto.

    Vedi questa e questa discussioni attuali in cui si parla, guarda caso, proprio di questo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Si grazie..ho dato un'occhiata a quelle due discussioni.
    Il contenuto che mi viene rispedito indietro sono riuscito tranquillamente a buttarlo su una stringa..e dalla console di eclipse lo faccio stampare e me lo visualizza senza problemi.
    Però adesso devo estrapolare solo alcuni campi. Le regex se non sbaglio funzionano su PHP.
    Il codice della mia applicazione invece è java. E' per questo che avevo pensato a Java HTML Parser..ma non so usarlo..!

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Le espressioni regolari non hanno niente a che vedere con il linguaggio di programmazione utilizzato... per intenderci, ce n'è un supporto degno perfino in javascript. Java ne fornisce un supporto più che degno.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.