Lomakkeen lähetys Javalla?

Ajatellaan, että netissä on lomake, jossa on pari tekstikenttää ja Submit-nappi. Onko mitenkään mahdollista tehdä Javalla ohjelmaa, joka täyttää lomakkeen kentät ja lähettää lomakkeen?
4482
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

on mahdollista.

Äänestä
  • Voisitko vielä kertoa, että miten kyseinen asia tehdään? Linkkejä, koodia?

    Äänestä

  • Javanainen kirjoitti:

    Voisitko vielä kertoa, että miten kyseinen asia tehdään? Linkkejä, koodia?

    turha keksiä pyörää uudestaan, joten etsi netistä joku valmiiksi koodattu paketti, missä on luokkia tuota varten.

    Javasta löytyy itsestäänkin, mutta ne on aika karuja.

    Googleen vaan java httpclient

    Toinen kätevä ohjelma on HTTPLook. Sen saa imuroitua netistä kans ilmaseksi. Sen laitat päälle ja sitten selaimella teet kyseisellä sivulla ne asiat mitä haluat tehdä. Sitten httplookin lokista katsot, että mitä tietoja lähti sun selaimelta ja mitä palvelin vastas ja antoiko se cookien yms yms

    No sitten sulla onkin kaikki mitä tarvitset. Voit esimerkiksi tehdä ohjelman joka kirjautu city.fi sisään ja yrittää 3 kertaa sekunnisas jollekin kanavalle kunnes pääsee sisään. Sen jälkeen se avaa sulle selaimelle sen chatin. Voi istua ite vaikka paskalla sillä aikaa, kun sun ohjelma jonottaa kanavalle.

    Itsellä on käytössä Jakarta httpclient luokat.
    Niillä homma menee about näin.

    public String sessionkey ="";
    public static Header hederi;
    httpclient = new HttpClient();
                   httpclient.setTimeout(30000);
                   httpclient.getHostConfiguration().setHost("www.city.fi",80);

    //Sitten logataan cityyn.
    //Luodaan login-formin tiedot

    NameValuePair [] nvpairslogin = new NameValuePair[2];
                      nvpairslogin[0] = new NameValuePair("msisdn","0401233123");
                      nvpairslogin[1] = new NameValuePair("password","salasana");

    //Lähetetään "formi" cityyn.

    PostMethod post = new PostMethod("/login.php");
             
                   post.setRequestBody(nvpairslogin);
             
                   int result = httpclient.executeMethod(post);

    //Otetaan vastauksen header talteen ja siitä uudelleenohjauksen tiedot

    hederi = post.getResponseHeader("Location");
                   
                         redirect = hederi.getValue();

    //Cityn luoma sessionkey talteen                     sessionkey = redirect.substring(8,40);

    post.releaseConnection();
          
                GetMethod loginget = new GetMethod("/index.php" redirect);
          
                httpclient.executeMethod(loginget);
          
                loginget.releaseConnection();

    Nyt city luulee, että tulit selaimella sisään ja kirjauduitkin vielä. Nyt voisit hakea vaikka mailisi automaattisesti omalle koneelle

    Äänestä

  • Piru kirjoitti:

    turha keksiä pyörää uudestaan, joten etsi netistä joku valmiiksi koodattu paketti, missä on luokkia tuota varten.

    Javasta löytyy itsestäänkin, mutta ne on aika karuja.

    Googleen vaan java httpclient

    Toinen kätevä ohjelma on HTTPLook. Sen saa imuroitua netistä kans ilmaseksi. Sen laitat päälle ja sitten selaimella teet kyseisellä sivulla ne asiat mitä haluat tehdä. Sitten httplookin lokista katsot, että mitä tietoja lähti sun selaimelta ja mitä palvelin vastas ja antoiko se cookien yms yms

    No sitten sulla onkin kaikki mitä tarvitset. Voit esimerkiksi tehdä ohjelman joka kirjautu city.fi sisään ja yrittää 3 kertaa sekunnisas jollekin kanavalle kunnes pääsee sisään. Sen jälkeen se avaa sulle selaimelle sen chatin. Voi istua ite vaikka paskalla sillä aikaa, kun sun ohjelma jonottaa kanavalle.

    Itsellä on käytössä Jakarta httpclient luokat.
    Niillä homma menee about näin.

    public String sessionkey ="";
    public static Header hederi;
    httpclient = new HttpClient();
                   httpclient.setTimeout(30000);
                   httpclient.getHostConfiguration().setHost("www.city.fi",80);

    //Sitten logataan cityyn.
    //Luodaan login-formin tiedot

    NameValuePair [] nvpairslogin = new NameValuePair[2];
                      nvpairslogin[0] = new NameValuePair("msisdn","0401233123");
                      nvpairslogin[1] = new NameValuePair("password","salasana");

    //Lähetetään "formi" cityyn.

    PostMethod post = new PostMethod("/login.php");
             
                   post.setRequestBody(nvpairslogin);
             
                   int result = httpclient.executeMethod(post);

    //Otetaan vastauksen header talteen ja siitä uudelleenohjauksen tiedot

    hederi = post.getResponseHeader("Location");
                   
                         redirect = hederi.getValue();

    //Cityn luoma sessionkey talteen                     sessionkey = redirect.substring(8,40);

    post.releaseConnection();
          
                GetMethod loginget = new GetMethod("/index.php" redirect);
          
                httpclient.executeMethod(loginget);
          
                loginget.releaseConnection();

    Nyt city luulee, että tulit selaimella sisään ja kirjauduitkin vielä. Nyt voisit hakea vaikka mailisi automaattisesti omalle koneelle

    Mikäli voidaan käyttää GET metodia, tekisin mielummin näin, toi toinen tapa vaikuttaa hankalata.

    Etsi siitä html koodista ne parametrit mitä se formi lähettää, ja sit vaan:

    URL url = new URL("http://www.google.com/search?hl=en&lr=&ie=UTF-8&oe=UTF-8&q=jipii&btnG=Search");

    Toi on vaan esimerkki, tyhmä kysely www.google.com:iin.

    Sit voit lukea tosta url objektista sen vastauksen jos on tarvetta ja vaikka parsii sen jos on tarvetta.

    Äänestä

Kommentoi aloitusta


Javanainen kirjoitti:

Ajatellaan, että netissä on lomake, jossa on pari tekstikenttää ja Submit-nappi. Onko mitenkään mahdollista tehdä Javalla ohjelmaa, joka täyttää lomakkeen kentät ja lähettää lomakkeen?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu