Domanda

Ho provato diversi modi per accedere a un sito Web tramite Java. Ho usato watij, HTMLunit ecc. Ma a causa della scarsa familiarità con nessuno di questi, non riesco ad accedere con successo.

Qualcuno può dirmi in dettaglio come accedere tramite Java

Per essere più specifici, desidero accedere a ORKUT e desidero l'origine pagine della pagina che viene dopo l'accesso.

È stato utile?

Soluzione

Le tue migliori possibilità di fare queste cose & amp; sopravvivere nel mondo reale sono con Selenium-RC.

Fondamentalmente, quello che farai è controllare a distanza il tuo browser per fare tutto ciò che puoi fare manualmente (tranne i caricamenti di file).

Molte volte ho usato questo schema:

  1. Accedi con selenio
  2. Accetta i cookie
  3. Continua con la mia libreria HTTP preferita.

Altri suggerimenti

La risposta dipende da come il sito Web tenta di autenticarti:

  • Devi impostare un nome utente e una password nelle intestazioni HTTP (autenticazione di base)?
  • Oppure devi compilare e inviare un modulo contenente nome utente e password?

Per entrambi consiglierei commons-httpclient, sebbene quest'ultimo approccio di screen-scraping sia sempre disordinato da fare a livello di programmazione.

Per l'autenticazione di base, dai un'occhiata alla Guida all'autenticazione di httpclient .

Per l'autenticazione dei moduli, è necessario controllare l'origine HTML della pagina per capire

  • L'URL al quale viene inviato il modulo
  • Quali sono i nomi dei parametri da inviare

Per assistenza su come inviare un modulo in httpclient, dai un'occhiata a la documentazione sul metodo POST .

Il sito httpclient contiene anche un tutorial di base .

Perché stai provando ad accedere tramite Java, perché non usare semplicemente cURL? C'è qualcosa di specifico che stai cercando di realizzare?

Orkut utilizza l'autenticazione di Google per accedere. Il mio suggerimento è di utilizzare un debugger HTTP come Fiddler per controllare il traffico durante l'accesso. Probabilmente, ci sono cookie e reindirizzamenti che devi replicare.

In generale,

  1. Guarda il modulo di accesso, ottieni i nomi del campo nome e password e l'azione in cui il modulo pubblica
  2. Crea una richiesta POST all'URL dell'azione e inserisci correttamente il nome e la password (ad es. nome = nome utente e password; pwd)
  3. Era questo HTTPS (assicurati di farlo correttamente)
  4. Se la risposta ha un SET-COOKIE nell'intestazione, assicurati di inviare quel cookie su tutte le richieste successive
  5. Se la risposta ha un reindirizzamento, quindi fare un OTTENERE per il reindirizzamento, inviando i cookie se appropriato
  6. (continua a girare su # 5 fino a quando non ricevi un reindirizzamento)

La risposta che ricevi alla fine è la fonte della pagina.

Dai un'occhiata a questo:

http: // code .google.com / apis / GData / javadoc / com / google / GData / client / http / AuthSubUtil.html http: // code.google.com/p/apex-google-data/source/browse/trunk/google_data_toolkit/src/classes/AuthSubUtil.cls

Sembra un codice Google per l'autenticazione con i loro servizi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top