PHP 获取 HTTP 400 响应的内容

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

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

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

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

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

最佳答案

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

关于PHP 获取 HTTP 400 响应的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3710147/

相关文章:

PHP + MySQL : creating queries

ruby - 如何配置 capfile 以使用 curl 与 New Relic 通信?

cookies - 在Linux上使用CURL保存Cookie

REST HTTP 状态码(如果 DELETE 不可能)

http - 当客户端尝试更新客户端陈旧的数据实体时,什么 HTTP 状态代码是合适的?

rest - 凭证过期错误/异常的 HTTP 状态代码应该是什么?

PHP 提前关闭连接。如果完成任何输出,脚本将挂起

php - 如何通过php创建目录/文件夹?

php - 填充数组php的算法

windows - 在 system() 函数中使用变量 c++