Данные PHP $ _POST появляются пустым Android

Я работаю над 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 nameValuePairs = new ArrayList(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).']';
?>

Все остальные данные $ return верны, за исключением возврата «post». Мысли?

0
добавлено
Просмотры: 1
de
Если остальное придет, проблема будет выглядеть в вашем $ _ POST . Убедитесь, что вы правильно разместили сообщение. Попробуйте проверить, правильно ли отправляется сообщение
добавлено автор cjds, источник

2 ответы

Спасибо за все советы. Проблема заканчивается тем, что находится в моем файле .htaccess. Я забыл, что у меня было правило перезаписи, которое помещает «www» перед адресом. Я пытался POST на свой сайт без начала «www», который вызвал потерю данных POST. Я перезаписал файл .htaccess для подкаталога, в котором работал, и теперь все работает отлично !!! Еще раз спасибо за советы!

2
добавлено

Создает ли ваше приложение HTTP-запросы результата PHP-кода?

Вы можете интерпретировать PHP (CLI-Mode) так же, как вы можете использовать Perl или Python, если вы это сделаете, у вас нет HTTP-Protocoll. Если ваш сценарий доставляется через веб-сервер, на самом деле должны быть $ _ POST , $ _ GET и $ _ REQUEST массивы.

Вы можете проверить с помощью этого , есть ли http-заголовок или нет!

0
добавлено