我有一个具有 Web 服务 RESTful API 的应用程序。当我在浏览器中发出 HTTP GET 请求时,我会返回 XML 响应。
当我使用 PHP 发出相同的请求时,我得到了正确的信息,但它不是 XML 格式的,所以我不能将它传递给 Simple XML。
这是我的代码。
<?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);
?>
任何想法或建议都会非常有帮助。
小号
编辑:
所以这是我从 PHP 代码中得到的响应:
0x100000rhel-mlsptrue9.2.3.0101
这是我使用 WizTools Rest Client 或浏览器时的响应。
<?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>
如您所见,信息在那里,但 PHP 并没有真正以有用的方式呈现这一点。