Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je développe une application pour la prévision de la météo pour un site web,j'utilise Google weather API.Le problème que j'ai c'est avec la changement de la langue standard "US" vers "FR" c'est à dire obtenir les données en langue française.
Voilà ma classe(juste pour tester) :
class weather { ... $lang='fr'; $ville='paris'; $client = new Zend_Http_Client('http://www.google.com/ig/api?weather='.$ville.",&hl=".$lang); $response = null; try { $response = $client->request('POST'); echo $response; } catch(Zend_Http_Client_Exception $e) { throw new Zend_Exception("Service Request Failed: {$e->getMessage()}"); } $xml = new SimpleXMLElement($response->getBody()); $information = $xml->xpath("/xml_api_reply/weather/forecast_information"); $current = $xml->xpath("/xml_api_reply/weather/current_conditions"); $forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions"); .... }
il me renvoie des données mais toujours en anglais,ce qui me rend fou c'est que le même lien je le tape sur le net il m'affiche les données correctement :
http://www.google.com/ig/api?weather=paris,&hl=fr j'obtiens les données en français en format XML.
http://www.google.com/ig/api?weather=paris,&hl=de j'obtiens les données en langue allemande en format XML.
Mais dans mon code toujours en ANGLAIS??Après tout tester,je me sens que l'erreur directement de "Zend_http_client" et l'encodage UTF-8 parce que surement il n'accepte pas "&hl" dans le lien que je l'as changé par "&hl" mais toujours sans changement.J'attends vos réponses.
Merci.Nll
Hors ligne
Salut,
as-tu essayé de passer tes paramètres à Zend_Http_Client en utilisant les méthodes prévus à cet effet :
$client = new Zend_Http_Client('http://www.google.com/ig/api'); $client->setParameterPost( array( 'weather' => $ville, 'hl' => $lang ));
Dernière modification par NewSky (06-04-2010 16:19:07)
Hors ligne
Bonjour,
J'ai changé le code,voilà:
.... $ville= 'paris'; $lang='fr'; $client = new Zend_Http_Client('http://www.google.com/ig/api'); $client->setParameterGet( array( 'weather' => $ville, '&hl' => $lang )); $response = null; try { $response = $client->request('POST'); } catch(Zend_Http_Client_Exception $e) { throw new Zend_Exception("Service Request Failed: {$e->getMessage()}"); } $xml = new SimpleXMLElement($response->getBody()); $information = $xml->xpath("/xml_api_reply/weather/forecast_information"); $current = $xml->xpath("/xml_api_reply/weather/current_conditions"); $forecast_list = $xml->xpath("/xml_api_reply/weather/forecast_conditions"); ....
Mais toujours il m'affiche les résultats en ANGLAIS.
A+.Nll
Dernière modification par elec (06-04-2010 17:18:14)
Hors ligne
Est-ce une spécification de l'API de lancer la requête en POST ?
Hors ligne
Bonjour,
Je ne comprend pas qu'est ce que tu veux dire par ça,à mon avis le problème c'est que il n'accepte pas "&" dans l'URL.
A+.Nll
Hors ligne
Moi, ce que je comprends pas, c'est que tu fasses
$response = $client->request('POST');
au lieu de
$response = $client->request(); // équivalent à $response = $client->request('GET'); puisque la méthode n'a pas été paramétrée
Hors ligne