0

我正在尝试通过 CURL 从我的 API 中获取响应,该方法需要通过 XML 获取用户数据,然后返回带有响应数据的 XML。我什么也得不到。API 运行良好,当我在 PHP 以外的其他地方尝试相同的请求时,它可以正常工作。我的 API 需要在 application/xml Content-Type 中发送数据。

任何想法我做错了什么?

<?php
    $request="https://api.mydomain.com/operation/v1/rest/xml/user/authenticate";
    $xml_data='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
               <userCredentials>
                    <userName>name</userName>
                    <password>password</password>
               </userCredentials>';

    $ch = curl_init();
    //curl_setopt($ch, CURLOPT_MUTE, 1);
    curl_setopt($ch, CURLOPT_URL, $request);
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, "Content-type: application/xml");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);
    curl_close($ch);

    echo "<b>Request:</b> $request <br/>";
    echo "<b>Response:</b><pre>".$output."</pre>";
?>
4

1 回答 1

0

正如评论,快速猜测(冗长的评论):

echo "<b>Response:</b><pre>".$output."</pre>";

这将输出未转义的 XML。您的浏览器不会在浏览器窗口内显示任何内容,但是当您查看页面的源代码时应该可以看到一些内容。

于 2013-02-07T15:16:33.950 回答