Чтение HttpRequest, отправленного Java в PHP - PullRequest
0 голосов
/ 08 марта 2012
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?

Я пытался захватить данные какthis:

<?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 ]

1 голос
/ 08 марта 2012

Попробуйте эту функцию вместо 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
}
0 голосов
/ 08 марта 2012

Вы можете читать необработанные данные POST в PHP с помощью ...

$post = file_get_contents('php://input');

Я предпочитаю этот метод глобальному $HTTP_RAW_POST_DATA.

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