2011-06-22 134 views
1

好的标题说我想。如何在POST请求中从Request Body获取所有'内容'?

我试过print_r($_SERVER),但是我用提琴手做的'post-request'没有出现。

我真的在我心里现在想约1小时后:S

什么其实我要的是使用JSON的请求体发送POST请求。然后我想json_decode(request-body);这样我可以使用变量来回复。所以,我并不需要把我的变量在URL

编辑:

这是我的POST

$url = 'http.........jsonAPI/jsonTestAPI.php'; 
$post = array("token" => "923874657382934857y32893475y43829ufhgjdkfn"); 
$jsonpost = json_encode($post); 

$ch = curl_init($url); 

curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonpost); 

$response = curl_exec($ch); 

curl_close($ch); 
+1

告诉我们你有什么代码... – Drewdin

+0

第一停靠港应该永远是phpinfo();在你的PHP脚本中看看有什么可用的...你会看到$ _REQUEST或$ _POST,如果它们是有效的和设置的... – sdolgy

+0

我需要建立的是移动应用程序和服务之间的通信。 JSON API服务。我需要用一些可以返回的feedkey来接收一个数组。但是你不能只在数组中放入数组,所以我想到了一个JSON POST请求。 – Highmastdon

回答

7

尝试file_get_contents('php://input');或PHP全球$HTTP_RAW_POST_DATA

+1

不知道为什么这是低调,因为它确实是正确的事情。 – pilif

+0

谢谢:) file_get_contents('php:// input');正是我需要的。 – Highmastdon

+0

这也适用于任何其他HTTP方法携带的内容正文,如PUT。还建议用'maxlen'参数为允许的内容主体设置最大大小,例如, 'file_get_contents('php:// input',null,null,0,0x1000)'。 –

0

最简单的方法是将你的json放入一个隐藏的输入字段,然后用POST提交包含的表单。