PHP cURL HTTP GET Format XML
Mam aplikację, która ma API usług RESTful Web Services. Kiedy wykonuję żądania HTTP GET w przeglądarce, otrzymuję odpowiedzi XML.
Kiedy wykonuję tę samą prośbę za pomocą PHP, otrzymuję poprawne informacje, ale nie są one sformatowane w formacie XML, więc nie mogę przekazać ich do Simple 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 myśli lub sugestie byłyby naprawdę pomocne.
S
EDYTOWAĆ:
Oto odpowiedź, którą otrzymuję z kodu PHP:
0x100000rhel-mlsptrue9.2.3.0101
Jest to odpowiedź, jeśli korzystam z klienta RestTools Rest 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 tam są, ale PHP tak naprawdę nie przedstawia tego w użyteczny sposób.