Страница 1 из 1

POST массив

Добавлено: 03 окт 2012, 13:19
tanchik
Здравствуйте! Скорее всего задам глупый вопрос, но тем не менее не смогла найти на него ответ. Как в java можно вывести массив переменных POST? что-то подобное print_r($_POST); как в php. Заранее спасибо!
Пробовала так:

Код: Выделить всё

System.out.println(httppost);
Но это совсем не то

Re: POST массив

Добавлено: 03 окт 2012, 20:27
rezak90
getParams() возвращает HttpParams, а от туда вытягивайте что хотите.

Re: POST массив

Добавлено: 04 окт 2012, 10:50
tanchik
rezak90 писал(а):getParams() возвращает HttpParams, а от туда вытягивайте что хотите.
Благодарю!

Re: POST массив

Добавлено: 04 окт 2012, 11:38
tanchik
rezak90 писал(а):getParams() возвращает HttpParams, а от туда вытягивайте что хотите.
не поняла что-то :oops: а можно строчку которая пост массив выведет?

Re: POST массив

Добавлено: 04 окт 2012, 11:41
rezak90
Вам известны параметры post'a? или вы хоити узнать есть хоть какие то параметры у post'a?

Re: POST массив

Добавлено: 04 окт 2012, 12:56
tanchik
rezak90 писал(а):Вам известны параметры post'a? или вы хоити узнать есть хоть какие то параметры у post'a?
я отправляю пост запрос, и хочу на него посмотреть в каком виде он уходит

Код: Выделить всё

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("LoginForm[username]", username));
                nameValuePairs.add(new BasicNameValuePair("LoginForm[password]", password));
                nameValuePairs.add(new BasicNameValuePair("yt0", "Войти"));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Он должен прийти в таком виде

Код: Выделить всё

Array ( [LoginForm] => Array ( [username] => test@gmail.com [password] => test ) [yt0] => Войти ) 
Я получаю в результате ответ - false, думаю массив пост не правильно сформировала, хочу его увидеть

Re: POST массив

Добавлено: 04 окт 2012, 13:00
rezak90
по простому: установите HttpAnalyzerStdV5 прожка легка в управлении и будете видеть всё. Но я только не знаю покажет ли она что то из работы эмулятора...

Но если лень, то думаю так:

Код: Выделить всё

httpResponse.execute(httppost);
HttpEntity httpEntity = httpResponse.getEntity();
Log.i("MyTag", "response: " + readInputStreamAsString(httpEntity.getContent()));
//................................................................................................................
public static String readInputStreamAsString(InputStream in) throws IOException {
    BufferedInputStream bis = new BufferedInputStream(in);
    ByteArrayOutputStream buf = new ByteArrayOutputStream();
    int result = bis.read();
    while(result != -1) {
      byte b = (byte)result;
      buf.write(b);
      result = bis.read();
    }        
    return buf.toString();
}

Re: POST массив

Добавлено: 04 окт 2012, 13:21
tanchik
rezak90 писал(а):по простому: установите HttpAnalyzerStdV5 прожка легка в управлении и будете видеть всё. Но я только не знаю покажет ли она что то из работы эмулятора...

ага, попробую! Спасибо за отзывчивость!

Re: POST массив

Добавлено: 04 окт 2012, 13:56
neoksi
tanchik писал(а): я отправляю пост запрос, и хочу на него посмотреть в каком виде он уходит

Код: Выделить всё

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("LoginForm[username]", username));
                nameValuePairs.add(new BasicNameValuePair("LoginForm[password]", password));
                nameValuePairs.add(new BasicNameValuePair("yt0", "Войти"));
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
В этой строке явная ошибка:

Код: Выделить всё

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
Должно быть:

Код: Выделить всё

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
Вы же отправляете 3 пары, а не 2.

Re: POST массив

Добавлено: 04 окт 2012, 17:05
tanchik
neoksi писал(а): В этой строке явная ошибка:

Код: Выделить всё

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
Должно быть:

Код: Выделить всё

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
Вы же отправляете 3 пары, а не 2.
Да, спасибо! я опечаталась :oops: