【问题标题】:Curl GET returns different format than the browserCurl GET 返回与浏览器不同的格式
【发布时间】:2014-05-12 18:29:35
【问题描述】:

我调用 curl GET ,它返回一个不是 XML 格式的字符串,如果我从浏览器调用它,它会以 XML 格式出现。

我需要字符串为 xml 格式,这是 curl 调用

$conn2 = curl_init("https://www.mysite.com/api/users?id=user&account=account&password=pw");
curl_setopt($conn2, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($conn2, CURLOPT_TIMEOUT, 30);
$result = curl_exec($conn2);

$xml =simplexml_load_string($result);
$oldCredit=$xml->credit;

dpm ($result);

【问题讨论】:

  • 需要使用curl从Url获​​取内容吗???检查stackoverflow.com/questions/11292475/…
  • 是的,我必须使用 curl
  • 那么在您使用 Web 服务时,您的 URL 中可能存在用户和密码问题。如果有帮助,请检查此解决方案 --- stackoverflow.com/questions/18662014/…
  • 它不能是用户和密码问题,因为我从 api 获取结果,但它不是 XML 格式,如果我从浏览器调用它,它确实是 XML 谢谢跨度>
  • 我更改了评论中的链接,所以再次单击它,如果您检查它,该人与您有同样的问题。浏览器好的,卷曲不是。

标签: php xml curl


【解决方案1】:

最简单的解决方案是在调用curl_exec()之前添加这两行

curl_setopt($conn2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($conn2, CURLOPT_SSL_VERIFYHOST, false);

您可以在php.net site 上阅读这些选项和其他选项的说明。

否则,您将不得不安装 SSL,或者确保您已经安装了一个,然后将您的 curl 指向它:

curl_setopt($conn2, CURLOPT_CAINFO, 'C:/path-to-your-certs/cert.pem');

参考:http://blog.josephwilk.net/snippets/curl-and-certificates-with-windows-php.html

另外:通过这样的 url 传递用户信息和凭据是 BAD

【讨论】:

    猜你喜欢
    • 2017-09-25
    • 2016-01-11
    • 2019-09-22
    • 1970-01-01
    • 2017-03-20
    • 2015-05-15
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多