PHP fsockopen 400 错误请求

PHP fsockopen 400 Bad Request

我遇到了一个奇怪的问题,我收到了 400 Bad request 作为响应,我完全不知道 header 出了什么问题。这是我的代码:

<?php

$sock = fsockopen('IP ADDRESS', 80, $errno, $errstr);

$header = array(
    'GET / HTTP/1.1',
    'Host: whosebug.com',
    'User-agent: My Useragent',
    'Connection: Close'
);

fputs($sock, join('\r\n', $header));

while(!feof($sock))
{
    echo fgets($sock, 128);
    break;
}

fclose($sock);

?>

知道我做错了什么吗?

谢谢

编辑:感谢 MrCode,这个问题得到了解决。问题在这里:

fputs($sock, join('\r\n', $header));

我不得不将其更改为:

fputs($sock, join("\r\n", $header)."\r\n\r\n");

注意双引号和“\r\n\r\n”

再次感谢 MrCode

您缺少 \r\n\r\n,这是在最后 header 之后所必需的。目前你在最后 header.

之后什么都没有

将其追加到连接结果中:

fputs($sock, join("\r\n", $header) . "\r\n\r\n");

此外,您需要在 \r\n 周围使用双引号,因为使用单引号会导致 PHP 按字面意思而不是换行。