PHP cURL HTTP GET Format XML
J'ai une application qui dispose d'un des Services Web RESTful API. Quand je fais des requêtes HTTP GET dans le navigateur j'obtiens XML de réponses.
Quand je fais la même demande à l'aide de PHP-je obtenir des renseignements exacts, mais il n'est pas formaté en XML et donc je ne peux pas passer à XML Simple.
Voici mon code.
<?php
//Deifne user credentials to use with requests
$user = "user";
$passwd = "user";
//Define header array for cURL requestes
$header = array('Contect-Type:application/xml', 'Accept:application/xml');
//Define base URL
$url = 'http://192.168.0.100:8080/root/restful/';
//Define http request nouns
$ls = $url . "landscapes";
//Initialise cURL object
$ch = curl_init();
//Set cURL options
curl_setopt_array($ch, array(
CURLOPT_HTTPHEADER => $header, //Set http header options
CURLOPT_URL => $ls, //URL sent as part of the request
CURLOPT_HTTPAUTH => CURLAUTH_BASIC, //Set Authentication to BASIC
CURLOPT_USERPWD => $user . ":" . $passwd, //Set username and password options
CURLOPT_HTTPGET => TRUE //Set cURL to GET method
));
//Define variable to hold the returned data from the cURL request
$data = curl_exec($ch);
//Close cURL connection
curl_close($ch);
//Print results
print_r($data);
?>
Des idées ou des suggestions serait vraiment utile.
S
EDIT:
Donc, c'est la réponse que je reçois depuis le code PHP:
0x100000rhel-mlsptrue9.2.3.0101
C'est la réponse, si j'utilise le WizTools Reste Client ou un navigateur.
<?xml version="1.0" encoding="UTF-16"?>
<landscape-response total-landscapes="1" xmlns="http://www.url.com/root/restful/schema/response">
<landscape>
<id>0x100000</id>
<name>rhel-mlsp</name>
<isPrimary>true</isPrimary>
<version>9.2.3.010</version>
</landscape>
</landscape-response>
Comme vous pouvez le voir, l'information est là, mais le PHP n'est pas vraiment la présentation de cette façon utile.
OriginalL'auteur Simon | 2013-09-06
Vous devez vous connecter pour publier un commentaire.
J'ai été en mesure de trouver la réponse à cette question, donc je pensais que je voudrais partager le code ici.
Comme vous pouvez le voir, le code n'est pas tout que de différents, la chose principale est de séparer l'option du port de l'URL et dans sa propre option.
J'espère que cela aide quelqu'un d'autre!!!
S
OriginalL'auteur Simon
Essayer cette
T-il imprimer quoi que ce soit (votre code)? Essayez d'utiliser
echo $data
mais frapper la touche F12 pour afficher les résultats sur la console.J'ai trouvé la raison pourquoi ses pas l'affichage de l'information correctement et c'est parce que les balises XML sont inconnus. Je pense que j'ai besoin d'inclure un fichier de sorte qu'il sait quoi faire avec tout ça.
OriginalL'auteur LefterisL