我有这个奇怪的问题,我收到400 Bad请求作为回复,我完全不知道标题有什么问题。这是我的代码:
<?php
$sock = fsockopen('IP ADDRESS', 80, $errno, $errstr);
$header = array(
'GET / HTTP/1.1',
'Host: stackoverflow.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");
注意双引号和&#34; \ r \ n \ r \ n&#34;
再次感谢MrCode
答案 0 :(得分:4)
您在最终标题后缺少\r\n\r\n
。目前,在最终标题之后你什么都没有。
将其附加到联接结果:
fputs($sock, join("\r\n", $header) . "\r\n\r\n");
此外,您需要在\r\n
周围使用双引号,因为使用单引号会导致PHP按字面意思而不是新行。