Android Volley: невозможно передать данные на сервер - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь создать простую страницу регистрации для моего приложения для Android.Я передаю параметры с URL String и сохраняю эти параметры в базе данных.Всякий раз, когда я пытаюсь использовать строку непосредственно в браузере, данные добавляются в базу данных без каких-либо ошибок.Тем не менее, когда я пытаюсь передать данные из Android Volley, я получаю HTTP-ошибку 409.

Я проверил все и все еще не понимаю, почему эта ошибка появляется только при попытке запустить строку URL-адреса из приложения Android.

Строка URL: -

http://myurl.com/api/register.php?name=ahmed&email=obaid.ahmed@gmail.com&password=12345&membertype=Artist&joindate=24-Feb-2019

Код Java: -

       JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, urlFinal, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    // display response
                    Log.d("Response", response.toString());
                    uploadImageToServer();
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.d("Error.Response", error.toString());
                    hideDialog();
                }
            }
    );

1 Ответ

0 голосов
/ 24 февраля 2019

Сначала вам нужно понять, что такое 409,

Объясните здесь: - https://httpstatuses.com/409

И попробуйте решить эту проблему на стороне сервера, где возникает проблема конфликта.

И я рекомендую вам использовать кодировку URL перед отправкой вещей в URL, который выполняется: либо:

  String query = URLEncoder.encode("apples oranges", "utf-8");
  String url = "http://stackoverflow.com/search?q=" + query;

, либо

  String uri = Uri.parse("http://...")
            .buildUpon()
            .appendQueryParameter("key", "val")
            .build().toString();

, которые делают ваш URL более совместимым.

Или, для более лучшего пути, есть библиотека, которую я лично рекомендую любому разработчику Android, который любит легкий вес Volley for Api Integrations.

https://github.com/Lib-Jamun/Volley

dependencies {
   compile 'tk.jamun:volley:0.0.4'
}

Cool Coding.

...