HttpPost в Android частично работает

1

Я пытаюсь отправить некоторые данные на веб-страницу, которая использует конфигурацию Apache/MySQL с помощью устройства Android. Здесь фрагмент кода, который я использую (IP-адрес является фиктивным):

    final HttpClient httpclient = new DefaultHttpClient();
    final HttpPost httppost = new HttpPost("http://10.1.1.2/test.php");

    new Thread(new Runnable() {
        public void run() {

            try {  

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("submitted", "1"));
                nameValuePairs.add(new BasicNameValuePair("latitude", String.valueOf(latitude)));
                nameValuePairs.add(new BasicNameValuePair("longitude", String.valueOf(longitude)));
                nameValuePairs.add(new BasicNameValuePair("country", country));
                nameValuePairs.add(new BasicNameValuePair("adminArea", admin));
                nameValuePairs.add(new BasicNameValuePair("subAdminArea", subAdmin));
                nameValuePairs.add(new BasicNameValuePair("city", city));
                nameValuePairs.add(new BasicNameValuePair("zip", zip));
                nameValuePairs.add(new BasicNameValuePair("address", adrs));                 

                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                HttpResponse response = null;

                response = httpclient.execute(httppost);

            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }
        }
    }).start();

Этот код выполняется, как только я нажимаю кнопку "Отправить" и вставлен в базу данных на стороне сервера. Проблема заключается в том, что я получаю только частично отправленные данные, и я должен нажать несколько раз кнопку "Отправить", чтобы убедиться, что все данные были вставлены. Например, в первый раз, когда я нажимаю кнопку, вставлена только страна. Затем adminArea, затем "subAdminArea" и т.д.

Может быть проблема с кодом, показанным выше, или это может быть проблемой на стороне сервера?

  • 2
    если у вас есть доступ к серверу, почему бы не проверить, что поступает на сервер, просмотрев журналы сервера или используя WireShark? Таким образом, вы можете подтвердить, что получает сервер, что может помочь вам лучше понять, где происходит проблема.
  • 0
    Согласен, не вижу ничего плохого в вашем коде - хотя я рекомендую использовать AsyncTask поверх Thread - и думаю, что вам нужно проверить вещи на стороне сервера.
Показать ещё 1 комментарий
Теги:
http-post

1 ответ

0

проверьте, все ли на стороне сервера одно и то же. У меня было первое письмо с неправильным случаем и бесполезно тратило время.

  • 0
    Конструктор ArrayList принимающий значение int устанавливает начальный размер ArrayList и не препятствует дальнейшему его расширению.
  • 0
    Я извиняюсь. изменилось.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню