file_get_contents返回内容中的HTTP标头

城市的

file_get_contents()用来执行POST到API服务。这适用于大多数查询。但是,最近我在内容中file_get_contents()返回HTTP标头失败

对于代码:

$resp = file_get_contents("http://10.72.18.21:8000",false, $context);
var_dump($resp);
var_dump($http_response_header);

我每次都会得到以下内容和标题:

string(114328) "Server: Spark Proxy Server
Content-Length: 114272

{"records":....}
"
array(1) {
  [0]=>
  string(31) "HTTP/1.0 200 Spark Proxy Server"
}

请注意,在中,$resp您可以看到通常应在中解析的标头(前两行)$http_response_header

我还尝试了两种不同的方法来执行POST:(a)fopen+while循环和(b)fopen+ stream_get_contents在所有三种情况下,结果都是相同的。这三个之间的共同点是我使用以下方法创建的流上下文:

$opts = array('http' =>
array(
    'method'  => 'POST',
    'header'  => 'Content-type: application/x-www-form-urlencoded;charset=utf-8',
    'content' => http_build_query($params)
    )
);

$context  = stream_context_create($opts);

现在,使用相同的代码查询相同的API,但修改了一个参数,一切按预期进行,并且完整的标头为:

array(3) {
  [0]=>
  string(31) "HTTP/1.0 200 Spark Proxy Server"
  [1]=>
  string(26) "Server: Spark Proxy Server"
  [2]=>
  string(19) "Content-Length: 288"
}

最后,我尝试了使用python和cUrl失败的同一调用,并且在两种情况下结果都是正确的,因此我很确定这是与php相关的问题。

问题:

  • 有人见过这种行为吗?
  • 有没有一种方法可以在不使用的情况下执行相同的POST stream_context_create
  • 可以和时间相关吗?失败的示例最多需要1.4分钟才能完成
城市的

我今天再次尝试了此方法……而不是在内容中混入标题,而是得到了空内容和部分标题。这个错误虽然很容易Google搜索,并且使我得到一个类似问题(怪异行为)的答案file_get_contents

如第一条评论所述,更改默认套接字超时可以解决我的问题(将其设置为60):

ini_set("default_socket_timeout", 600);

我不太确定套接字如何超时,因为接收到的数据和标头似乎已经完成...

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

file_get_contents,HTTP请求失败

来自分类Dev

file_get_contents在本地主机上返回false

来自分类Dev

file_get_contents返回PHP代码

来自分类Dev

file_get_contents中的HTTP / 1.1 400错误请求

来自分类Dev

file_get_contents HTTP请求失败

来自分类Dev

无法使用file_get_contents(),不返回任何内容

来自分类Dev

file_get_contents()返回未知字符串

来自分类Dev

无法在file_get_contents内部回显函数内容

来自分类Dev

file_get_contents没有返回整个网页

来自分类Dev

如何使用file_get_contents获取变量中的HTTP状态

来自分类Dev

为什么我的POST file_get_contents返回HTTP错误请求?

来自分类Dev

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

来自分类Dev

一些内容的file_get_contents连接超时

来自分类Dev

PHP脚本返回“ file_get_contents”

来自分类Dev

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

来自分类Dev

file_get_contents,HTTP请求失败

来自分类Dev

file_get_contents没有返回正确的内容

来自分类Dev

无法使用file_get_contents(),不返回任何内容

来自分类Dev

无法在file_get_contents内部回显函数内容

来自分类Dev

file_get_contents不会返回所有内容

来自分类Dev

file_get_contents获取了错误的内容

来自分类Dev

获取使用file_get_contents存储的内容

来自分类Dev

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

来自分类Dev

如何在文本字段中绑定 file_get_contents() 返回值

来自分类Dev

在 HTTP.get 中传递标头

来自分类Dev

file_get_contents() 返回错误的页面

来自分类Dev

无法使用 file_get_contents 获取页面内容

来自分类Dev

file_get_contents 返回奇怪的符号而不是网站内容

来自分类Dev

file_get_contents 没有获取所有内容

Related 相关文章

热门标签

归档