Я использую потоки PHP для выполнения HTTP-вызовов с помощью fopen (). Я хотел бы напечатать HTTP-запрос в виде строки (заголовки и содержимое), прежде чем он будет отправлен через fopen ().
Есть ли функция, которая обрабатывает переменную контекста потока, чтобы сделать это? Если это так, будет ли кто-то достаточно любезен, чтобы опубликовать краткий пример этого?
Вот функция, которая ожидает URL, выбирает его и возвращает содержимое:
function do_post_request ($url, $content, $cookie = null) {
$headers = array("Content-type: application/x-www-form-urlencoded",
$cookie);
$all_headers = implode("\r\n", $headers)."\r\n";
$params = array('http' => array("method" => "POST",
"content" => $content,
"header" => $all_headers,
),
);
$ctx = stream_context_create($params);
$fp = fopen($url, 'rb', false, $ctx);
if (empty($fp)) {
throw new Exception("$url: Failed");
}
$resp = stream_get_contents($fp);
if (empty($resp)) {
throw new Exception("error: bad fetch");
}
return $resp
}