我将 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/