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 按字面意思而不是换行。
我遇到了一个奇怪的问题,我收到了 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 按字面意思而不是换行。