PHP的$_POST数据出现空的安卓系统

问题描述 投票:0回答:2

我正在开发一个Android应用程序,它可以读取一个在线PHP脚本,并以不同的结果回传一个JSON数组。我还从应用程序发送POST变量到PHP脚本中。当我从网站发布到脚本时,它工作正常,POST数据也存在。当我从应用程序发布时,POST数据是空的。

private JSONArray addBusiness(String businessName, String businessCategory, String businessDescription) {
    String result = "";
    InputStream is = null;
    try {
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("http://somesite.com/testAndroid.php");

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpClient.execute(httpPost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
    } catch (Exception e) {
        Log.e("log_tag", "Error in http connection " + e.toString());
    }

    try {
        Log.e("log_tag", "INSIDE TRY/CATCH");
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        result = sb.toString();
        Log.e("log_tag", "RESULT: " + result);
    } catch (Exception e) {
        Log.e("log_tag", "Error converting result " + e.toString());
    }

    try {
        return new JSONArray(result);
    } catch (JSONException e) {
        Log.e("log_tag", "Error parsing data " + e.toString());
    }
    return null;
}

以下是空出来的PHP代码。有什么想法吗?另外,我使用的是GoDaddy Shared Linux Hosting,运行PHP 5.2。

<?php
$return = array();
$return['result'] = 'pooping for the Internet';
$return['business'] = 'BUSINESS';
$return['post'] = $_POST['id'];
echo '['.json_encode($return).']';
?>

除了'post'返回的数据,其他所有的$return数据都是正确的。有什么想法?

php android post
2个回答
2
投票

谢谢你所有的提示。问题最终是在我的 .htaccess 文件。我忘了我有一个重写规则,把 "www "放在url的前面。我试图POST到我的网站,没有开头的 "www",这导致了POST数据的丢失。我重写了 .htaccess 文件的子目录中是工作在,现在一切都很好!!。再次感谢您的提示


0
投票

你的App是否会生成PHP代码结果的HTTP请求?

你可以解释 PHP (CLI-Mode) 就像你使用Perl或Python一样,如果你这样做,就不会涉及到任何HTTP-Protocoll。如果你的Script是通过webserver传递的,那么确实应该有 $_POST,$_GET$_REQUEST 数组。

您可以使用 这个 是否有http-header!

© www.soinside.com 2019 - 2024. All rights reserved.