如何从PHP HTTP Stream中将HTTP请求作为字符串获取

时间:2011-04-04 17:12:21

标签: php http stream

我正在使用PHP Streams使用fopen()进行HTTP调用。我希望在通过fopen()发送之前将HTTP请求打印为字符串(标题和内容)。

是否有一个处理流上下文变量的函数来执行此操作?如果是这样,有人会发表一个简短的例子吗?

这是一个需要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 :(得分:0)

我使用PEAR的HTTP_Request2支持拦截和记录已发送的标头。