Как получить HTTP-запрос в виде строки из PHP HTTP Stream - PullRequest
1 голос
/ 04 апреля 2011

Я использую потоки 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
}

1 Ответ

0 голосов
/ 06 апреля 2011

Я бы использовал PEAR HTTP_Request2 , который поддерживает перехват и запись отправленных заголовков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...