如何使用fsockopen将异步请求发送到没有路径的URL

时间:2019-05-25 14:18:38

标签: php asynchronous request fsockopen

我正在使用fsockopen对不同的URL进行异步请求。 假设我需要使用以下格式(带有路径)对网址进行请求:POST http://www.example.com/v1。 此代码示例运行良好。

$url = "www.example.com";
$path = "/v1";

$fp = fsockopen($url, 80, $errno, $errstr, 30);

if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "POST " . $path . " HTTP/1.1\r\n"; // 'POST /v1 HTTP/1.1'
    $out .= "Host: " . $url . "\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);

    // Read the body of the response just for testing purpose.
    $output = "";
    while ($line = fgets($fp)) {
        $output .= $line;
    }
    echo $output;

    fclose($fp);
}

但是我无法将请求发送到没有路径的URL。例如:POST http://www.example.com

您可以想象变量$path的值为"",请求的第一行将是POST HTTP/1.1。 结果,我看不到任何回应。

如果我将变量$path“强制”为值/(请求的第一行将是POST / HTTP/1.1),则会收到301作为响应(不符合预期)

有什么建议吗?预先感谢!

0 个答案:

没有答案