From 3127f7c70315c3a5db3f4442fbf0d2da05ab8a40 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 16 Dec 2010 19:10:15 +0100 Subject: [PATCH] check http response codes --- Wrt3g.php | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/Wrt3g.php b/Wrt3g.php index c71ae19..3b4d43d 100644 --- a/Wrt3g.php +++ b/Wrt3g.php @@ -115,6 +115,7 @@ class Wrt3g $r->addPostParameter('wait_time', 1); $resp = $r->send(); + $this->checkResponseStatus($resp); return $resp; }//public function reboot() @@ -143,7 +144,7 @@ class Wrt3g $r->setUrl($strUrlBase . '/index_wstatus2.asp'); $this->log('Connecting to ' . $strUrlBase . '/index_wstatus2.asp', 1); $resp = $r->send(); - $this->log($resp->getStatus() . ' ' . $resp->getReasonPhrase(), 1); + $this->checkResponseStatus($resp); $arRetval = $parser->index_wstatus2($resp->getBody()); /** @@ -152,6 +153,7 @@ class Wrt3g $r->setUrl($strUrlBase . '/index_wstatus1.asp'); $this->log('Connecting to ' . $strUrlBase . '/index_wstatus1.asp', 1); $resp = $r->send(); + $this->checkResponseStatus($resp); $body = $resp->getBody(); $arRetval = array_merge($arRetval, $parser->index_wstatus1($body)); @@ -179,8 +181,7 @@ class Wrt3g $r->setMethod(HTTP_Request2::METHOD_GET); $r->setUrl($url); $resp = $r->send(); - $this->log($resp->getStatus() . ' ' . $resp->getReasonPhrase(), 1); - //FIXME: check status + $this->checkResponseStatus($resp); $parser = new Wrt3g_HtmlParser(); @@ -191,6 +192,32 @@ class Wrt3g + /** + * Checks the HTTP response code and throws an exception if it + * is not in the 200 range. + * + * @param HTTP_Request2_Response $resp HTTP response object + * + * @return void + * + * @throws Exception When the status is not 200-299 + */ + protected function checkResponseStatus(HTTP_Request2_Response $resp) + { + $nStatus = $resp->getStatus(); + $this->log($nStatus . ' ' . $resp->getReasonPhrase(), 1); + if (intval($nStatus / 100) == 2) { + //2xx status is fine + return; + } + + throw new Exception( + 'HTTP Error: ' . $nStatus . ' ' . $resp->getReasonPhrase() + ); + } + + + /** * Retrieves pc card/SIM status information * -- 2.30.2