2016-04-20 5 views
1

OK ... Ich benutze PHP 5 (sei sanft, lerne immer noch PHP). CURL ist aktiviert. Es wird versucht, eine XML- oder JSON-Ausgabe von einer API in ein Objekt zu laden, und nichts passiert. Wenn ich die fragliche URL manuell ausführe, bekomme ich, was ich erwarte.Versuch, XML/JSON von einer API-Ausgabe zu analysieren

Hier ist mein Code:

class XmlToJson { 
    public function Parse ($url) { 
     $fileContents = file_get_contents($url); 
     $fileContents = str_replace(array("\n", "\r", "\t"), '', $fileContents); 
     $fileContents = trim(str_replace('"', "'", $fileContents)); 
     $simpleXml = simplexml_load_string($fileContents); 
     $json = json_encode($simpleXml); 
     return $json; 
    } 
} 

$_MySQLServer = "localhost"; 
$_MySQLServerUserName = ""; 
$_MySQLServerPassword = ""; 
$_MySQLDatabaseName = ""; 

$_SSActiveWear_UserID = "*****"; 
$_SSActiveWear_APIKey = "*****"; 
$_SSActiveWear_APIBaseURL = "https://*****/v2"; 
$_CategoryURL = "/categories/"; 
$_StylesURL = "/styles/"; 
$_ProductsURL = "/products/"; 
$_SpecsURL = "/specs/"; 
$_SSActiveWear_MediaType = "xml"; 

//$_conn = mysqli_connect($_MySQLServer, $_MySQLServerUserName, $_MySQLServerPassword, $_MySQLDatabaseName); 

//Insert or Update Categories 
$_URL = $_SSActiveWear_APIBaseURL . $_CategoryURL; 
$_URL = $_URL . "?mediatype=$_SSActiveWear_MediaType&UserName=$_SSActiveWear_UserID&Password=$_SSActiveWear_APIKey"; 

$OBJ = simplexml_load_string($_URL); 

print_r($OBJ); 

Was mache ich falsch?

Edit 1

addierten die folgenden Code:

$xml = simplexml_load_file($_URL) or die("Error: Cannot create object"); 
print_r($xml); 

und es stirbt. Bedeutet das, dass etwas mit dem Code nicht stimmt?

+0

Können Sie Fiedler auf der Maschine laufen, während dieser Lauf Ihren Anruf, um zu überprüfen heraus geht und wiederkehrende Daten Dein PHP? Wenn das passiert, ist Ihr Code falsch. Wenn beim Anruf Fehler aufgetreten sind, können Sie sie im Antwortfenster von Fiddler unten sehen. Siehe http://www.telerik.com/fiddler – Taterhead

+0

Keine Fehler. In der Tat war das Ergebnis ein http-200 auf einem Post, also habe ich keine Ahnung, warum es nicht funktioniert :(. –

Antwort

0

Ich fand es endlich heraus ... Mehr zum Punkt fand ich endlich eine Website bei Google, die geholfen hat. Es ist die erste Antwort in fsockopen with http authentication problem.

So, hier ist der Code, der funktioniert:

file_get_contents("https://$_SSActiveWear_UserID:[email protected]$_SSActiveWear_APIBaseURL$_CategoryURL/?mediatype=$_SSActiveWear_MediaType"); 

media

entweder json oder xml sein kann
0

Try this:

$OBJ = simplexml_load_string(file_get_contents($_URL)); 

Wenn Sie wollen wissen, warum Ihr Code nicht funktioniert, Sie versuchen, XML von URL zu laden, aber "simplexml_load_string" lädt XML von String.

+0

Kein Würfel. Immer noch leer. –

+0

Sind Sie sicher, dass API XML-Ausgabe zurückgibt? –

+0

Absichtlich probierte ich die URL von Hand selbst. Es gibt auch JSON. –

Verwandte Themen