Mam aplikacji, która ma Web Services REST API. Kiedy wysyłam żądania HTTP GET do przeglądarki, otrzymuję odpowiedzi XML.PHP cURL HTTP GET XML Format
Kiedy robię ten sam wniosek za pomocą PHP uzyskać prawidłowe informacje, ale to nie jest sformatowany w formacie XML, a więc nie można przekazać je do prostego XML.
Oto mój kod.
<?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);
?>
Wszelkie przemyślenia lub sugestie byłyby bardzo pomocne.
S
EDIT:
Więc to jest odpowiedź uzyskać od kodu PHP:
0x100000rhel-mlsptrue9.2.3.0101
To jest odpowiedź, jeśli używam WizTools Rest klienta lub przeglądarki.
<?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>
Jak widać, informacje są dostępne, ale PHP nie przedstawia tego w użyteczny sposób.
Hmm nie jestem pewien, co miało się wydarzyć, ale używając twojego kodu właśnie dostałem fatalny wyjątek. – Simon
Znalazłem powód, dla którego nie wyświetla poprawnie informacji, a to dlatego, że znaczniki w pliku XML są nieznane. Myślę, że muszę dołączyć plik schematu, aby wiedział, co zrobić z tym wszystkim. – Simon