powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Spring for Android POST request
11 сообщений из 11, страница 1 из 1
Spring for Android POST request
    #39231967
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте коллеги.
Отправляю POST запрос на сервер.
Думаю что параметры в POST запрос вовсе не попадают. Потому что ответ от сервера такой:
Код: java
1.
{"error":true,"error_msg":"input data is not correct. Enter again!"}



Сам код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
private class HttpRequestTask extends AsyncTask<Void, Void, TestNameDTO> {
        @Override
        protected TestNameDTO doInBackground(Void... params) {
            try {
 
                List<MediaType> types = Arrays.asList(
                        new MediaType("text", "html", Charset.forName("UTF-8")),
                        new MediaType("application", "json", Charset.forName("UTF-8")),
                        new MediaType("application", "*+json", Charset.forName("UTF-8"))
                );
 
                String url = "//login.php";
                RestTemplate restTemplate = new RestTemplate();
                MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
                jsonConverter.setObjectMapper(new ObjectMapper());
                jsonConverter.setSupportedMediaTypes(types);
                restTemplate.getMessageConverters().add(jsonConverter);
 
                Map<String, String> map = new HashMap<String, String>();
                map.put("email", "w@mail.com");
                map.put("password", "12345678");
 
 
                TestNameDTO entity = restTemplate.postForObject(url, map, TestNameDTO.class);
 
                Log.i("MY_TAG", " ERROR: " + entity.getError()
                        + " ERROR_MSG: " + entity.getError_msg()
                        + " UID: " + entity.getUid());
 
                return entity;
 
            } catch (Exception e) {
                Log.e("LoginActivity", e.getMessage(), e);
            }
 
            return null;
        }
 
        @Override
        protected void onPostExecute(TestNameDTO entity) {
            Log.i("MY_TAG", " ERROR: " + entity.getError()
                    + " ERROR_MSG: " + entity.getError_msg()
                    + " UID: " + entity.getUid());
        }
 
    }


Не могу пройти авторизацию на сервере
Библиотеки подключены к проекту
compile 'org.springframework.android:spring-android-rest-template:2.0.0.BUILD-SNAPSHOT';
compile 'com.fasterxml.jackson.core:jackson-databind:2.7.3'
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39231972
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АсланалиДумаю что параметры в POST запрос вовсе не попадают. Потому что ответ от сервера такой:
Код: java
1.
{"error":true,"error_msg":"input data is not correct. Enter again!"}



такой ответ может означать что угодно. например что автору сего поделия было лень разбираться, что не так, и он на любые ошибки выдает одно и то же. может пароль/логин не правильные, может там user-agent проверяется или referrer или бог знает что еще.
возьми и заPOST-и тоже самое вручную, есть плагины для Firefox и для хрома (Poster) - и посмотри, есть ошибка или нет.
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39232032
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,

Спасибо за ответ.
Дело в том что проверяя на PostMan-не (как раз пример того что вы советовали для тестирования запроса) все отрабатывает хорошо. Сервер отвечает корректно выдавая нужный JSON.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
{
  "error": false,
  "uid": "5730bea2319df0.98827769",
  "user": {
    "name": "testName",
    "email": "testName@mail.com",
    "created_at": "2016-05-09 19:45:22",
    "updated_at": null
  }
}
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39232062
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это действие можно эмитировать браузером, то попробуй подсмотреть, что и как браузер отправляет.
Посмотреть можно пользуясь локальным прокси https://sourceforge.net/projects/paros/
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39232142
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно убедиться, что спринг корректно отрабатывает параметры в виде мапы, в интернете я видел примеры на базе MultiValueMap, скорее всего это здесь ни при чем, но есть маленькая вероятность, что спрингу не все равно. потом я бы посмотрел в сторону user-agent. еще чисто для выявления слабого звена можно взять любой другой клиент, httpclient, HttpURLConnection, retrofit. в общем нужно исключить вариант ошибки на клиенте и тогда можно гадать, что не нравится серверу
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39232146
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaMultiValueMap
Да, вы правы. Видел такое тоже. Попробую.
На счет клиента отправляющего запрос библиотека Volley, что скажите?
Возможно ли совместная работа библиотек Volley и Jackson?
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39232192
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АсланалиНа счет клиента отправляющего запрос библиотека Volley, что скажите?

не проникся. повсюду смешение http и андроидного кода
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        // Display the first 500 characters of the response string.
        mTextView.setText("Response is: "+ response.substring(0,500));
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        mTextView.setText("That didn't work!");
    }
});



рекомендую посмотреть retrofit в связке с androidannotations, или androidannotations и их же restclient (кстати он кажется спринговый resttemplate юзает), но решай сам, а не потому что какой-то чувак в интернете присоветовал
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39232216
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,
Понял вас, спасибо.
Вами приведенный пример, это пример Volley?
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39232218
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АсланалиВами приведенный пример, это пример Volley?
он самый
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39232224
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,
Спасибо большое вам за советы!
Благодарю также всех за ответы!
...
Рейтинг: 0 / 0
Spring for Android POST request
    #39233770
Асланали
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha, думаю остановится на Retrofit. Spring пробовать не хочу.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Spring for Android POST request
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]