读取PHP在PHP中发送的HttpRequest

时间:2012-03-08 08:22:17

标签: java php httpwebrequest

PostMethod postMethod = new PostMethod("http://abc.com/a.php");
postMethod.setRequestEntity(new InputStreamRequestEntity(new ByteArrayInputStream(someString.getBytes())));
HttpClient httpClient = initMultithreadedHttpClient(ConnectionTimeout,
                SocketTimeout, MaxRetry);
httpClient.executeMethod(postMethod);

这就是我将数据从Java客户端发送到PHP服务器的方式 如何在PHP中阅读?

我试图捕获这样的数据:

<?php
$fp = fopen("/opt/lampp/htdocs/input.txt","w");
ob_start();
print_r($_REQUEST);
print_r($_SERVER);
print_r(http_get_request_body());
fprintf($fp,"%s",ob_get_contents());
ob_end_clean();
fclose($fp);
?>

但它并没有真正打印请求数据。

2 个答案:

答案 0 :(得分:1)

尝试使用此功能代替http_get_request_body

function get_post_body() {
  $body = '';
  $fh   = @fopen('php://input', 'r');
  if ($fh)
  {
    while (!feof($fh))
    {
      $s = fread($fh, 1024);
      if (is_string($s))
      {
        $body .= $s;
      }
    }
    fclose($fh);
  } 
  return $body
}

答案 1 :(得分:0)

您可以使用...

在PHP中读取原始POST数据
$post = file_get_contents('php://input');

我更喜欢这种方法而不是$HTTP_RAW_POST_DATA全局。