Ошибка HTTP 400 BAD REQUEST при отправке запроса GET с php

Пока я пытаюсь отправить запрос GET на адрес с php я получаю сообщение HTTP 400 BAD REQUEST и я не могу понять, почему.

Вот мой код:

function redirect($url)
{
 error_reporting(E_ERROR | E_PARSE);

 $components = parse_url($url);

 $port = $components["port"];
 $ip = $components["host"];
 $path = $components["path"];

 //create and connect socket with the parameters entered by the user
 //$sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);

 echo "Establishing connection to the given adress...\n";


 //Connection timeout limit is set to 10 seconds...
 if(!isset($port))
 {
 $port = 80;
 }
 $sock = fsockopen($ip, $port,$errno, $errstr, 10) or die("Unable to connect...");

 $request = "GET $path HTTP/1.1" . "\r\n\r\n";


 fwrite($sock, $request);

 while ($header = stream_get_line($sock, 1024, "\r\n")) {
 $response.= $header . "\n";
 }
 echo $response;
 $loc = "";

 if (preg_match("/Location:\'(.*)\\n/", $response, $results))
 $loc = $results[1];

 echo $loc;

}

Какие-либо предложения?

2 ответа

Для этой конкретной проблемы я нашел решение. Если вы хотите получить заголовки из запроса, который я отправил в указанном выше вопросе, вы можете использовать get_headers($url) php get_headers($url). Он извлекает заголовки, которые я искал. Я действительно новичок в протоколах и веб-сервисах, а также в php (1 или 1,5 недели), поэтому я, возможно, задал глупый вопрос и не был достаточно конкретным. В любом случае, спасибо за ваши ответы.

Хорошего дня!


Запрос GET также содержит заголовок, который включает такие вещи, как useragent or encoding, вы должны посмотреть, что вам нужно отправить, и какие дополнительные

licensed under cc by-sa 3.0 with attribution.