2009-06-10 6 views
0

kehrt ich eine Webservice verwenden einige Ergebnisse in XML-Form zu erhalten ... hier ist der Teil des Codesweiter verwendet webservice in PHP, die 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; 

, wenn ich, dass ‚$ asd‘ echo es nichts tut, aber eine balnk Seite ...

, aber wenn ich den Wert von $ url verwenden direkt im Browser erzeugen sie ein XML-Ergebnis ...

kann jemand vorschlagen mich, wo ich falsch werde ???

ADDED .........

, wenn ich den Fehler enthalten nach curl_exec

Berichterstattung

ein Fehler

Fehler gibt: Problem SSL-Zertifikat, stellen Sie sicher, dass das CA-Zertifikat ist OK. Details: Fehler: 14090086: SSL-Routinen: SSL3_GET_SERVER_CERTIFICATE: Zertifikat

fehlgeschlagen verify auch Iam Usig https: // blahblh für Anfrage

+1

Funktioniert cURL mit einer anderen URL? Haben Sie error_reporting und display_errors richtig eingestellt? –

+0

Bitte formatieren Sie Ihren Code ... – Jet

+0

Ja, ich benutze Yahoo Spel Check Service ... und Curl funktioniert gut damit. Auch habe ich Fehlerberichterstattung noch nicht – Andromeda

Antwort

4

das Problem gelöst Out ....

da ich https bin mit: //, muss ich eine einzige Zeile Code enthalten, die

curl_setopt ($ ch den Curl-Optionen festlegen, CURLOPT_SSL_VERIFYPEER , FALSCH);

+0

Vielen Dank - ich hatte versucht, dies für Stunden zu lösen. –

1

ich ich bin nicht blind - Ihr "getXML" ist ein Verfahren zur Herstellung eines Klasse (zB myWebService). Also, wie denkst du, dass dein $asd = getXML(); funktionieren sollte?

Ich nehme Ihren Code wie folgt aussehen muss:

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

ZUSÄTZLICH:

Ich denke, dass Browser einfach nicht die XML-Anzeige, weil sie einen Header mit Inhaltstyp Text empfängt/HTML standardmäßig. Versuchen Sie auf Seite Quelle suchen oder schreiben, bevor

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

jeden Browser Echo, unter der Annahme, dass diese HTML sollte unbekannte Tags ignorieren, die keine HTML-kompatibel sind. Ihr XML wird also als unbekanntes Nicht-HTML-Tag interpretiert.

+0

Ich weiß th .... Ich habe eine Klasse für meinen Dienst erstellt und getXML durch eine aufgerufen Objekt der Klasse .... – Andromeda

+0

Ich habe nicht den ganzen Code in der Frage gepostet. nur der relevante Teil – Andromeda

+0

, als ich die Überschrift hinzufügte ('Content-type: text/xml'); Ich habe XML-Parsing-Fehler: nicht gut ausgebildete – Andromeda

Verwandte Themen