2012-03-08 51 views
0
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中讀取由Java發送的HttpRequest

我試圖捕捉到的數據是這樣的:

<?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); 
?> 

但它並沒有真正打印請求數據。

回答

0

您可以用PHP ...

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

讀取原始POST數據,我更喜歡在$HTTP_RAW_POST_DATA全球這種方法。

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 
} 
相關問題