0

从 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']) 但这两个都给了我空字符串。

4

3 回答 3

1

您想使用$_POST环境变量。因此,在您的代码中,您可以使用 $_POST["pa"]and $_POST["pb"]

如果这不起作用,请尝试使用var_dump检查$_POST( var_dump($_POST)) 的内容。如果它是空的,那么这是你的android代码的问题。

于 2014-09-27T15:36:30.167 回答
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 可能是不必要的,但我发现它给了我更好的灵活性和可靠性。

于 2014-09-27T15:42:03.137 回答
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>

阅读如何在 PHP 中提取 $_GET / $_POST 参数

于 2021-01-09T17:13:08.373 回答