abfrge per curl funktioniert nicht
promox
- php
Ich versuche per curl folgende abfrage:
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, "http://online-api.de/lizenzsystem/lizenzpruefungen.php?userid=123888&scriptkennung=DRV4-1001&url=reg.big-domain.eu&lang=de&operation=lizenzstatus");
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array ("Content-Type: text/xml; charset=utf-8"));
#curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// $output contains the output string
$output = curl_exec($ch);
$scriptlizenz = simplexml_load_string($output);
var_dump($output);
// close curl resource to free up system resources
curl_close($ch);
hier bekomme ich immer null als ergebnis
wenn ich aber selben link im browser aufrufen
(http://online-api.de/lizenzsystem/lizenzpruefungen.php?userid=123888&scriptkennung=DRV4-1001&url=reg.big-domain.eu&lang=de&operation=lizenzstatus)
bekomme ich die richtige Ausgabe
kann mir jemand helfen und mal sagen was da falsch ist.
kann mir jemand helfen und mal sagen was da falsch ist.
Mir gibt das unveränderte(!) Skript folgendes aus:
<RESPONSE>
<LIZENZSTATUS>1</LIZENZSTATUS>
<LIZENZVERSION>4.2.0</LIZENZVERSION>
<SICHERHEITSUPDATE>0</SICHERHEITSUPDATE>
</RESPONSE>
Ist das Paket php-curl installiert? Eventuel hilft ein error_reporting(E_ALL) und/oder ein Blick in die Logfiles.
das ist richtig habe das mal auf anderen server getestet da geht es auch
http://reg.big-domain.eu/kundencenter/test.php
aber so wie es aussehen tut ist curl drauf
oder sin da noch andere Einstellungen falsch mit sowas kenne ich mich nun gar nicht aus.
vielen dank für ihre hilfe
gruß richert, ralf
Moin,
aber so wie es aussehen tut ist curl drauf
So, wie dus beschreiben tust, ist curl nicht drauf.
error_reporting(E_ALL);
mal probiert?
Grüße Marco
ich sehe das auch so
error reporting hat garnix ausgegeben
gruß
richert
Moin,
error reporting hat garnix ausgegeben
Hm. Vielleicht eine Beschränkung einer Firewall/Proxy? Entwickelst du lokal oder online?
Grüße Marco
Tach!
So, wie dus beschreiben tust, ist curl nicht drauf.
Dieser These widerspricht, dass nicht bereits curl_init() fehlschlägt, denn auch das nutzt Funtionen der curl-Bibliothek.
dedlfix.
Versuche doch mal die Adresse http://online-api.de/lizenzsystem/lizenzpruefungen.php?userid=123888&scriptkennung=DRV4-1001&url=reg.big-domain.eu&lang=de&operation=lizenzstatus von dem System aus, auf dem auch Dein PHP-Skript läuft, mit wget abzuholen. (z.B. via ssh-Konsole)
Mich interessieren die Rückgaben von:
wget -d -O - "http://online-api.de/lizenzsystem/lizenzpruefungen.php?userid=123888&scriptkennung=DRV4-1001&url=reg.big-domain.eu&lang=de&operation=lizenzstatus"
Mich interessieren die Header (sehen diese dem Ergebnis mit meinen Netztool ähnlich?) und natürlich will ich auch wissen, ob vom Server das XML gesendet wurde.
Tach!
kann mir jemand helfen und mal sagen was da falsch ist.
Ich kann kein Problem nachvollziehen.
hier bekomme ich immer null als ergebnis
Das passiert bei mir nicht. Stattdessen kommt da XML.
curl\_setopt($ch, CURLOPT\_HTTPHEADER, array ("Content-Type: text/xml; charset=utf-8"));
Diese Zeile ist überflüssig. Du machst einen GET-Request, bei dem es keinen Content gibt. Und für den muss kein Content-Type definiert werden.
wenn ich aber selben link im browser aufrufen
bekomme ich die richtige Ausgabe
Manchmal sind die Server etwas eigensinnig, wenn denen ein Request zugestellt wird, der zwar technisch in Ordnung ist, dem aber irgendeine Header-Zeile fehlt, die Browser normalerweise mitsenden (z.B. User-Agent). Aber das scheint hier nicht der Fall zu sein, weil es prinzipiell geht.
Vielleicht hast du ein Problem, mit einem Zwangsproxy. Der Browser kennt und nutzt ihn, dein Curl natürlich nicht ohne weiteres.
dedlfix.