2009-06-10 6 views
0

J'utilise un webservice pour obtenir des résultats sous forme de XMl ... voici la partie du codeUTILISATION webservice en PHP qui retourne XML

public function getXML() 
{ 
    $url=$this->constructURL(); 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $xml = curl_exec($ch); 
    if ($error = curl_error($ch)) { 
    echo "Error: $error<br />\n"; 
    } 
    curl_close($ch); 
    return $xml; 
} 


$resultXML = $api->getXML(); 
echo $resultXML; 

quand je fais l'écho que « asd $ », il ne fait rien mais une page balnk ...

mais quand j'utilise la valeur de $ url directement dans le navigateur, il produit un résultat XML ...

peut me suggérer où je me trompe ???

AJOUTÉE .........

quand je l'erreur inclus déclaration après curl_exec

donne une erreur

Erreur: problème de certificat SSL, vérifiez que le CA est cert D'ACCORD. Détails: erreur: 14090086: routines SSL: SSL3_GET_SERVER_CERTIFICATE: certificat verify échoué

aussi Iam usig https: // blahblh de la demande

+1

Est-ce que cURL fonctionne avec n'importe quelle autre URL? Avez-vous défini error_reporting et display_errors correctement? –

+0

S'il vous plaît, formatez votre code ... – Jet

+0

oui, j'utilise yahoo spel vérifier le service ... et curl fonctionne très bien avec elle. Aussi, je n'ai pas encore défini les rapports d'erreurs – Andromeda

Répondre

4

Résolu le problème ....

depuis que je suis en utilisant https: //, je dois inclure une seule ligne de code qui définit les options cURL

curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER , FAUX);

+0

Merci beaucoup - j'avais essayé de résoudre ce problème pendant des heures. –

1

Je je ne suis pas aveugle - votre "getXML" est une méthode de class (ie myWebService). Alors, comment pensez-vous que votre $asd = getXML(); devrait fonctionner?

Je suppose que votre code doit ressembler à ceci:

... 
$service = new myWebService(); 
$asd = $service->getXML(); 
echo $asd; 

AJOUTÉE:

Je pense que le navigateur ne fonctionne tout simplement afficher pas votre XML, car il reçoit un en-tête avec le texte de type de contenu/html par défaut. Essayez de regarder à la source de la page ou écrire avant écho

header('Content-type: text/xml'); 

Tout navigateur, en supposant que ce HTML devrait ignorer les balises inconnues qui ne sont pas compatibles HTML. Votre code XML est donc interprété comme une balise non-HTML inconnue.

+0

Je sais que ... J'ai créé une classe pour mon service et j'ai appelé getXML via un objet de la classe .... – Andromeda

+0

Je n'ai pas posté tout le code dans la question. seulement la partie pertinente – Andromeda

+0

quand j'ai ajouté l'en-tête ('Content-type: text/xml'); Erreur Erreur d'analyse XML: pas bien formé – Andromeda