Я делаю POST-запрос, сервер получает и регистрирует GET-запрос - PullRequest
1 голос
/ 29 марта 2012

В Android-приложении Java выполняет POST-запрос с обработкой php.

Это прекрасно работает при локальной работе , apache регистрирует POST:

192.168.1.123 - - [29/Mar/2012:15:46:56 +0200] "POST /usuarioLogin.php HTTP/1.1" 200 292 "-" "Apache-HttpClient/UNAVAILABLE (java 1.4)"

При удаленной работе apache регистрирует запрос GET и, очевидно, не находит отправленные параметры.Apache регистрирует следующее:

78.XXX.256.XXX - - [29/Mar/2012:16:20:05 +0200] "GET /usuarioLogin.php HTTP/1.1" 200 267 "-" "Apache-HttpClient/UNAVAILABLE (java 1.4)"

Java-код, выполняющий POST:

private void HttpPost(String php, ArrayList<NameValuePair> nameValuePairs) {

    try {
        HttpClient httpclient = new DefaultHttpClient();
        String host = com.android.taggies.LoginUser.getContext().getResources().getString(R.string.host);
        HttpPost httppost = new HttpPost(host + php);
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        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());
    }
}

И PHP:

<?php
mysql_connect("localhost","root","");
mysql_select_db("dbBaggies");

$q=mysql_query("SELECT count(*) as 'return' FROM users
WHERE name='$_POST[user]' AND password ='$_POST[pass]'");

while($e=mysql_fetch_assoc($q))
{
    $output[]=$e;
} 

print(json_encode($output));

mysql_close();
?>

1 Ответ

0 голосов
/ 29 марта 2012

У меня тоже были проблемы с запросами POST, чтобы загрузить изображение на мой внешний сервер LAMP.Это действительно помогло мне:

http://moazzam -khan.com / blog /? P = 490

Это класс с несколькими методами GET и POST.Попробуйте использовать это:

public static HttpData post(String sUrl, Hashtable<String, String> ht) throws Exception {
            String key;
            StringBuffer data = new StringBuffer();
            Enumeration<String> keys = ht.keys();
            while (keys.hasMoreElements()) {
                    key = keys.nextElement();
                    data.append(URLEncoder.encode(key, "UTF-8"));
                    data.append("=");
                    data.append(URLEncoder.encode(ht.get(key), "UTF-8"));
                    data.append("&amp;");
            }
            return HttpRequest.post(sUrl, data.toString());
    }

Вам понадобятся некоторые внешние классы, я думаю.Пожалуйста, проверьте ссылку.

...