【问题标题】:PHP Get Content of HTTP 400 ResponsePHP 获取 HTTP 400 响应的内容
【发布时间】:2011-04-12 05:29:18
【问题描述】:

我将 PHP 与 Amazon Payments 网络服务一起使用。我的一些请求有问题。亚马逊应该返回一个错误,但是它的处理方式给我带来了问题。

Amazon 返回带有错误消息的 XML 数据,但它也会抛出 HTTP 400(有时甚至是 404)。这使得 file_get_contents() 立即抛出错误,我无法获取内容。我也尝试过使用 cURL,但从来没有得到回复。

我真的需要一种方法来获取返回的 XML,而不管 HTTP 状态代码如何。它有一个重要的“消息”元素,可以为我提供有关我的计费请求失败原因的线索。

是否有人有 cURL 示例或其他允许我这样做的示例?我所有的请求目前都使用 file_get_contents() 但我不反对更改它们。其他人似乎都认为 cURL 是“正确”的方式。

【问题讨论】:

    标签: php curl http-status-codes file-get-contents


    【解决方案1】:

    您必须使用 ignore_errors 选项定义自定义流上下文(函数 file_get_contents 的第三个参数)。

    【讨论】:

    • 啊!它是如此简单,它的工作原理!谢谢您的帮助。如果不是那么晦涩,我本可以弄清楚的。
    【解决方案2】:

    作为 DoubleThink 帖子的后续,这里有一个工作示例:

    $url = 'http://whatever.com';
    
    //Set stream options
    $opts = array(
      'http' => array('ignore_errors' => true)
    );
    
    //Create the stream context
    $context = stream_context_create($opts);
    
    //Open the file using the defined context
    $file = file_get_contents($url, false, $context);
    

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 2014-04-01
      相关资源
      最近更新 更多