如何获取php file_get_contents()错误响应内容

重复垫片

我尝试使用PHP使用.net WebAPI。没有错误时,一切正常。但是,当WebApi中出现一些错误时(比如说POST数据的验证失败),我可以轻松获得响应标头,但是我无法找到如何获取响应内容,因此我可以读取引起该错误的原因。

有人知道如何获得它还是不可能?

WebAPI的testController上有test()动作,该动作需要id和text作为请求的内容,否则它将返回HTTP / 1.1 400 Bad Request并告知内容原因。

我使用提琴手来测试WebAPI:

POST http://localhost:56018/api/test/test
User-Agent: Fiddler
Content-Type: application/json
Host: localhost:56018
Content-Length: 32
Content: {"id": 5,"text" : '',}

响应为:

HTTP/1.1 400 Bad Request
...
Content-Length: 304

{"args.Text":{"_errors":[{"<Exception>k__BackingField":null,"<ErrorMessage>k__BackingField":"The Text field is required."}],"<Value>k__BackingField":null},"Text":{"_errors":[{"<Exception>k__BackingField":null,"<ErrorMessage>k__BackingField":"The Text field is required."}],"<Value>k__BackingField":null}}

因此,它在内容中表明“文本字段是必需的”。

同样用PHP完成:

$opts = array('http' =>
    [
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => http_build_query(['id' => 1, 'text' => '']),
        'ignore_errors' => true,
    ]
);
$context  = stream_context_create($opts);
$response = file_get_contents('http://localhost:56018/api/test/test', false, $context);
if($response === false)
{
    echo json_encode($http_response_header);
    die;
}
else
{
    ...
}

因此,我从$ http_response_header获得了响应头数据,但是我找不到任何方法来获取我在Fiddler中看到的响应内容。

有人知道如何获得它还是不可能?

最后一个提示cURL不是正确答案; P

编辑:在这种情况下,当($ response === false)时,也许值得一提$ http_response_header中的内容:

array (
  0 => 'HTTP/1.1 400 Bad Request',
  1 => 'Cache-Control: no-cache',
  2 => 'Pragma: no-cache',
  3 => 'Content-Type: application/json; charset=utf-8',
  4 => 'Expires: -1',
  5 => 'Server: Microsoft-IIS/10.0',
  6 => 'X-AspNet-Version: 4.0.30319',
  7 => 'X-SourceFiles: =?UTF-8?B?QzpcZG90TmV0NDBcR2FsbGUyV2ViQXBpXEdhbGxlMldlYkFwaVxhcGlcZ2FsbGUyXFRlc3Q=?=',
  8 => 'X-Powered-By: ASP.NET',
  9 => 'Date: Wed, 01 Jun 2016 06:33:11 GMT',
  10 => 'Connection: close',
  11 => 'Content-Length: 304',
)
重复垫片

因此,最后发布在此处的所有内容均应正常运行。在来到这里之前,我应该做一个孤立的测试用例。(但是在调试之后,您似乎已经尝试了所有选项:P)

因此,我认为'ignore_errors'=> true,该行被某种方式覆盖或忽略了,但是将其与其他假定起作用的代码隔离开来,并且将$ response的值与错误消息的内容隔离开来。

因此,在这种情况下,您需要使用其他不同于if($ response === false)的方式进行错误检查。非常简单的方法可能是if($ http_response_header [0]!='HTTP / 1.1 200 OK'){处理错误!}

感谢大家的投入!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

file_get_contents获取了错误的内容

来自分类Dev

使用file_get_contents获取失败时的响应正文

来自分类Dev

file_get_contents()没有响应-php

来自分类Dev

获取使用file_get_contents存储的内容

来自分类Dev

无法使用 file_get_contents 获取页面内容

来自分类Dev

file_get_contents 没有获取所有内容

来自分类Dev

如何处理file_get_contents()中的403错误?

来自分类Dev

在 Java 中以字符串形式获取网页内容(类似于 php 的 file_get_contents())

来自分类Dev

HTML/PHP 使用 file_get_contents() 在用户端获取 .txt 文件的内容

来自分类Dev

如何使用file_get_contents查找“ a”并单击“ a”以获取内部内容

来自分类Dev

如何通过PHP从file_get_contents检索文件的所有内容?

来自分类Dev

在file_get_contents('file.php')中获取变量

来自分类Dev

如何使用PHP中的file_get_contents修复404错误?

来自分类Dev

PHP file_get_contents获取jQuery的最小代码

来自分类Dev

JSON 使用 File_get_contents 获取 PHP 数组

来自分类Dev

使用ajax从php函数中获取file_get_contents

来自分类Dev

PHP:使用file_get_contents访问API-空响应

来自分类Dev

如何在PHP中使用file_get_contents获取图像的MIME类型

来自分类Dev

如何从远程file_get_contents获取引荐来源

来自分类Dev

php file_get_contents():内容从2147483648截断为2147483647字节

来自分类Dev

PHP file_get_contents和流返回警告而不是内容

来自分类Dev

PHP:空结果-file_get_contents

来自分类Dev

解释file_get_contents('php:// input')

来自分类Dev

PHP读取档案与file_get_contents

来自分类Dev

php file_get_contents FTP

来自分类Dev

file_get_contents返回PHP代码

来自分类Dev

PHP file_get_contents函数

来自分类Dev

在php中使用file_get_contents

来自分类Dev

PHP readfile与file_get_contents

Related 相关文章

  1. 1

    file_get_contents获取了错误的内容

  2. 2

    使用file_get_contents获取失败时的响应正文

  3. 3

    file_get_contents()没有响应-php

  4. 4

    获取使用file_get_contents存储的内容

  5. 5

    无法使用 file_get_contents 获取页面内容

  6. 6

    file_get_contents 没有获取所有内容

  7. 7

    如何处理file_get_contents()中的403错误?

  8. 8

    在 Java 中以字符串形式获取网页内容(类似于 php 的 file_get_contents())

  9. 9

    HTML/PHP 使用 file_get_contents() 在用户端获取 .txt 文件的内容

  10. 10

    如何使用file_get_contents查找“ a”并单击“ a”以获取内部内容

  11. 11

    如何通过PHP从file_get_contents检索文件的所有内容?

  12. 12

    在file_get_contents('file.php')中获取变量

  13. 13

    如何使用PHP中的file_get_contents修复404错误?

  14. 14

    PHP file_get_contents获取jQuery的最小代码

  15. 15

    JSON 使用 File_get_contents 获取 PHP 数组

  16. 16

    使用ajax从php函数中获取file_get_contents

  17. 17

    PHP:使用file_get_contents访问API-空响应

  18. 18

    如何在PHP中使用file_get_contents获取图像的MIME类型

  19. 19

    如何从远程file_get_contents获取引荐来源

  20. 20

    php file_get_contents():内容从2147483648截断为2147483647字节

  21. 21

    PHP file_get_contents和流返回警告而不是内容

  22. 22

    PHP:空结果-file_get_contents

  23. 23

    解释file_get_contents('php:// input')

  24. 24

    PHP读取档案与file_get_contents

  25. 25

    php file_get_contents FTP

  26. 26

    file_get_contents返回PHP代码

  27. 27

    PHP file_get_contents函数

  28. 28

    在php中使用file_get_contents

  29. 29

    PHP readfile与file_get_contents

热门标签

归档