diff --git a/Changelog b/Changelog index f045f7920b13f87df0b859607164f281be965e63..211ddb2bfa92207001b10102fb403bab5e38334a 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,7 @@ +git HEAD + + * Proper HTTP request error handling + Travel::Status::DE::DeutscheBahn 0.01 - Mon Jun 27 2011 * Initial release diff --git a/lib/Travel/Status/DE/DeutscheBahn.pm b/lib/Travel/Status/DE/DeutscheBahn.pm index 095a6eb745d24381e8c038b313849e24161f6463..12450b24504bff7dab93a3c5538df97d792e8642 100644 --- a/lib/Travel/Status/DE/DeutscheBahn.pm +++ b/lib/Travel/Status/DE/DeutscheBahn.pm @@ -19,6 +19,8 @@ sub new { my $ua = LWP::UserAgent->new(); + my $reply; + if ( not $conf{station} ) { confess('You need to specify a station'); } @@ -52,9 +54,15 @@ sub new { } } - $ref->{html} - = $ua->post( 'http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?rt=1', - $ref->{post} )->content(); + $reply = $ua->post( 'http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?rt=1', + $ref->{post} ); + + if ( $reply->is_error ) { + my $errstr = $reply->status_line(); + confess("Could not submit POST request: ${errstr}"); + } + + $ref->{html} = $reply->content(); $ref->{tree} = XML::LibXML->load_html( string => $ref->{html},