gpt4 book ai didi

php - 使用 CURL 返回 XML 响应

转载 作者:数据小太阳 更新时间:2023-10-29 02:51:06 28 4
gpt4 key购买 nike

我正在通过 HTTP POST 将一些参数传递给网络服务器。

我得到了一个响应,但理想情况下我想要一个完整的 XML 响应,而我似乎只得到一个连接的字符串。我已经尝试过 SimpleXMLElement,但它似乎没有做任何事情,而且它没有返回任何 XML。

下面是我的代码:

$post_string = '<?xml version="1.0" encoding="utf-16" ?> 
<ChameleonIAPI>
<Method>TitleList</Method>
<APIKey>D12E9CF3-F742-47FC-97CB-295F4488C2FA</APIKey>
<UserName>David</UserName>
<Filter>
</Filter>
</ChameleonIAPI>';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"https://jobs.chameleoni.com/PostXML/PostXml.aspx");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"Action=postxml&AuthKey=Guest&AuthPassword=KgwLLm7TL6G6&Xml=$post_string");

// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);

$server_output = curl_exec ($ch);

echo $server_output." TEST <br />";
curl_close ($ch);

$oXML = new SimpleXMLElement($server_output);

foreach($oXML->entry as $oEntry){
echo $oEntry->title . "\n";
}

这是您甚至可以测试 POST 和 XML 的页面。

https://jobs.chameleoni.com/PostXML/PostingXML.html

我的 XML 似乎没问题,因为它可以在测试页上运行。我假设我的 PHP 有问题,尽管我不知道那是什么!

任何帮助都会很可爱!

最佳答案

您的代码检索完整的 XML,以查看它写入:

echo htmlentities( $server_output );
die();

在浏览器中你会看到:

<?xml version="1.0" encoding="utf-16" ?> <ChameleonIAPIResponse>

<Titles><TitleId>1</TitleId><Title></Title><TitleId>6</TitleId><Title>Mr</Title><TitleId>2</TitleId><Title>Mrs</Title><TitleId>3</TitleId><Title>Miss</Title><TitleId>4</TitleId><Title>Ms</Title><TitleId>5</TitleId><Title>Dr</Title><TitleId>43</TitleId><Title>Sir</Title></Titles> </ChameleonIAPIResponse>

问题是浏览器将您的输出解释为 HTML,因此标记被隐藏(请参阅浏览器页面源代码,您会找到完整的 XML)。

此外,要以 XML 格式发送 XML,必须先发送适当的 header :

header( 'Content-type: text/xml' );
echo $server_output;
die();

以上代码前后没有其他输出,否则您的 XML 将被破坏。

如果您更喜欢 SimpleXML,您可以这样做:

$oXML = new SimpleXMLElement( $server_output );
header( 'Content-type: text/xml' );
echo $oXML->asXML();
die();

同样在这种情况下,之前和之后没有输出(所以评论前面的行)。

关于php - 使用 CURL 返回 XML 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35581239/

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