【发布时间】:2015-03-30 05:07:50
【问题描述】:
我有一个奇怪的问题,我收到 400 Bad request 作为响应,我完全不知道标头有什么问题。这是我的代码:
<?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");
注意双引号和“\r\n\r\n”
再次感谢 MrCode
【问题讨论】:
-
我有一个类似的问题,我用 \n 加入标题。这在连接到较旧的服务器时有效,但在较新的服务器上开始失败。我猜 \r\n 是标准,较新的服务器对此更严格。