Monday, 28 March 2011

NS api - hij is er!

Al enige tijd gingen er geruchten dat er een NS treinreizigers-api zou komen. Voor mijn Android-app SnelTrein deed ik wat onderzoek naar de concurrentie. Daartoe gebruikte ik mijn Desire Z op mijn eigen wifi accesspoint, via een oude hub verbonden naar de router. Door de computer daarna aan de hub te koppelen is het mogelijk het netwerkverkeer vanaf de telefoon af te luisteren (ik deed dat op mijn Ubuntu machine met WireShark). Wat blijkt:

Als u nu naar http://webservices.ns.nl/ gaat dient u een wachtwoord in te voeren. Helaas voor de NS gebruikt hun applicatie geen https, waardoor het wachtwoord dat de Android applicatie gebruikt ook af te luisteren is. De gebruikersnaam "android" en wachtwoord "mvdzig" worden open en bloot verstuurd en zijn ook gewoon bruikbaar vanuit uw browser.

Vervolgens kunt u een XML bestand downloaden url's als:


Dat dit handig is hoef ik u niet te vertellen. Enigszins jammer is wel dat ik een parser heb geschreven om alle informatie van de normale m.ns.nl website te lezen, en dat kostte wel even tijd.