gpt4 book ai didi

PHP cURL HTTP GET XML 格式

转载 作者:可可西里 更新时间:2023-11-01 13:54:48 25 4
gpt4 key购买 nike

我有一个具有 Web 服务 RESTful API 的应用程序。当我在浏览器中发出 HTTP GET 请求时,我会收到 XML 响应。

当我使用 PHP 发出相同的请求时,我得到了正确的信息,但它不是 XML 格式,所以我无法将它传递给简单 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 并没有真正以有用的方式呈现这些信息。

最佳答案

我能够找到这个问题的答案,所以我想我应该在这里分享代码。

//Initialise curl object
$ch = curl_init();

//Define curl options in an array
$options = array(CURLOPT_URL => "http://192.168.0.100/root/restful/<URI>",
CURLOPT_PORT => "8080",
CURLOPT_HEADER => "Content-Type:application/xml",
CURLOPT_USERPWD => "<USER>:<PASSWD>",
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_RETURNTRANSFER => TRUE
);

//Set options against curl object
curl_setopt_array($ch, $options);

//Assign execution of curl object to a variable
$data = curl_exec($ch);

//Close curl object
curl_close($ch);

//Pass results to the SimpleXMLElement function
$xml = new SimpleXMLElement($data);

print_r($xml);

如您所见,代码并没有太大不同,主要是将端口选项从 URL 中分离出来并放入其自己的选项中。

希望这对其他人有帮助!!!

小号

关于PHP cURL HTTP GET XML 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18662014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com