Hello all,
I've got a tricky situation here. I'm making a request to a REST client. It works like so:
$client = new Zend_Rest_Client('http://db.tigsource.com/games/' . $urlTitle . '.xml'); $result = $client->get();
And that's it. It works in normal cases. However, this particular service is not consistent in how they deal with apostrophes when translating a title to a URL, e.g. the title "zpc's example" might be accessed through one of either "zpc-s-example.xml" or "zpcs-example.xml". Since they are inconsistent in this way, I have to request it one way, and if it doesn't work, the other.
I have a method that does this, and in my unit tests, it works just as it should. In a single test (so no teardown and setup takes place between them), I request two titles whose URLs handle the apostrophes differently, and the function successfully attempts the second URL style if the first throws an exception.
However, when I manually test it, the second request throws an exception (whereas in the unit test, it's successful) with the following error message:
REST Response Error: inet_pton() [function.inet-pton]: Unrecognized address db.tigsource.com
Here's the main code in question, with the non-relevant parts taken out:
// $tryAgain will be true if the title contains apostrophes $urlTitle = $this->urlizeTitle($title); $client = new Zend_Rest_Client(); do { try { $client->setUri('http://db.tigsource.com/games/' . $urlTitle . '.xml'); $result = $client->get(); break; } catch (Exception $e) { if ($tryAgain) { $tryAgain = false; $urlTitle = $this->urlizeTitleOmitApostrophes($title); } else { // return error info and some other stuff } } } while (1==1);The stack trace after calling $client->setUri() the second time looks like this:
#0 /Applications/MAMP/htdocs/indiedevnet/library/Zend/Validate/Ip.php(62): Zend_Rest_Client_Result->handleXmlErrors(2, 'inet_pton() [isValid('db.tigsource.co...') #2 /Applications/MAMP/htdocs/indiedevnet/library/Zend/Uri/Http.php(448): Zend_Validate_Hostname->isValid('db.tigsource.co...') #3 /Applications/MAMP/htdocs/indiedevnet/library/Zend/Uri/Http.php(280): Zend_Uri_Http->validateHost('db.tigsource.co...') #4 /Applications/MAMP/htdocs/indiedevnet/library/Zend/Uri/Http.php(154): Zend_Uri_Http->valid() #5 /Applications/MAMP/htdocs/indiedevnet/library/Zend/Uri.php(132): Zend_Uri_Http->__construct() #6 /Applications/MAMP/htdocs/indiedevnet/library/Zend/Rest/Client.php(77): Zend_Uri::factory('http', '//db.tigsource....')
Any ideas what's causing this? I'm using ZF 1.7.5 if that's any help.
Much thanks in advance
View this message in context: REST Response Error: inet_pton() [function.inet-pton]: Unrecognized address
Sent from the Zend Web Services mailing list archive at Nabble.com.
没有评论:
发表评论