从Android应用程序,我正在调用我的PHP脚本。
HttpPost httppost = new HttpPost("http://www.smth.net/some.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("pa", "555"));
nameValuePairs.add(new BasicNameValuePair("pb", "550"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
}
如何在我的php脚本中获取“pa”和“pb”的值。
我做了$ _POST ['pa']和urldecode($ _ POST ['pa']),但这两个都给了我空字符串。
答案 0 :(得分:1)
您想要使用$_POST
环境变量。因此,在您的代码中,您可以使用$_POST["pa"]
和$_POST["pb"]
。
如果这不起作用,请尝试使用var_dump
检查$_POST
(var_dump($_POST)
)的内容。如果它是空的,那么你的android代码是个问题。
答案 1 :(得分:1)
您可以使用print_r($_POST)
调试正在发送的内容。
如果有帮助,这就是我使用POST从Android发送信息的方式:
JSONObject requestBody = new JSONObject();
requestBody.put("pa", "550");
requestBody.put("pb", "550");
HttpPost requestBase = new HttpPost("url");
StringEntity stringEntity = new StringEntity(requestBody.toString());
stringEntity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
requestBase.setEntity(stringEntity);
HttpResponse response = httpclient.execute(requestBase);
我在这里从事记忆工作 - 你需要插入一些尝试/捕获。
使用JSONObject可能是不必要的,但我发现它给了我更好的灵活性和可靠性。
答案 2 :(得分:0)
您可以使用$_POST
函数检查extract()
数组的内容,该函数读取所有键值对并创建以键为名称、以值为变量内容的变量。请参见下面的示例:
<form method="post" aciton="extract.php">
<input type="text" name="foo" />
<input type="submit" />
</form>
<pre>
<?php
function dump_extracted_post() {
extract($_POST);
var_dump(get_defined_vars());
}
dump_extracted_post();
?>
</pre>