Java koppla upp sig mot hemsida

Trädvy Permalänk
Medlem
Registrerad
Jun 2003

Java koppla upp sig mot hemsida

Hej

Sitter här med ett skolarbete och fastnat. Det är så att jag ska hämta information ifrån uselectionatlas.org och jag får det inte att fungera. Vi använder In från följande bok http://introcs.cs.princeton.edu/java/home/.

String source = "http://uselectionatlas.org/RESULTS/datagraph.php?year=2016"; In inpuStream = new In(source);

Ger följande fel:

Exception in thread "main" java.lang.IllegalArgumentException: Could not open http://uselectionatlas.org/RESULTS/datagraph.php?year=2016

Alla andra sidor jag testat med verkar fungera fint utom just denna. Någon som har nån aning om vad det kan vara?
Ska tillägga att jag fått tillstånd av läraren att ladda hem filerna på hårddisken och komma åt dom det hållet, vilket fungerar bra.
Men jag kan inte riktigt släppa att jag inte hittar felet.

Signatur raderad, se reglerna för mer info.

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Okt 2006

Bara ett slag i luften möjligen men ska inte source vara en URL och inte en String?

Trädvy Permalänk
Medlem
Registrerad
Jun 2003

Fick svar från en annan lärare nu.

Tydligen behövde man skriva System.setProperty("http.agent", "Chrome"); på vissa datorer. Inte en aning om varför men nu fungerar det iaf. Tack för svar!

System.setProperty("http.agent", "Chrome"); String source = "http://uselectionatlas.org/RESULTS/datagraph.php?year=" + year;

Signatur raderad, se reglerna för mer info.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2004
Skrivet av SexMachine:

Fick svar från en annan lärare nu.

Tydligen behövde man skriva System.setProperty("http.agent", "Chrome"); på vissa datorer. Inte en aning om varför men nu fungerar det iaf. Tack för svar!

System.setProperty("http.agent", "Chrome"); String source = "http://uselectionatlas.org/RESULTS/datagraph.php?year=" + year;

Den sätter en HTTP header "user agent" (https://en.wikipedia.org/wiki/User_agent) så att servern tror att det är en riktig webläsare (Chrome i detta fallet). Vissa tjänster spärrar vissa klienter så dom inte ska "kunna" scrapa (det du gör). Men som du nu vet är det lätt att gå runt detta.

Trädvy Permalänk
Medlem
Registrerad
Jun 2003
Skrivet av iXam:

Den sätter en HTTP header "user agent" (https://en.wikipedia.org/wiki/User_agent) så att servern tror att det är en riktig webläsare (Chrome i detta fallet). Vissa tjänster spärrar vissa klienter så dom inte ska "kunna" scrapa (det du gör). Men som du nu vet är det lätt att gå runt detta.

Aha tack för denna infon, kan vara bra att ta med sig när man möter ett liknande problem!

Signatur raderad, se reglerna för mer info.