Публикация данных Android JSON всегда приводит к исключению ввода-вывода

0

У меня есть сервер, и я использую следующую ссылку для отправки данных в моей БД

HTTP://URL.php действие = вставка и СКЗ = vehiclenumber & мобильный = mobilenumberoftheperson и время = CurrentTime

Чтобы вести запись времени ввода транспортного средства, теперь я хочу опубликовать те же данные с Android, для которых я использую следующий код:

Кнопка "Внутри":

 button.setOnClickListener(new View.OnClickListener() {

        //Toast.makeText(getApplicationContext(),"Data is tried!", Toast.LENGTH_LONG).show();
        public void onClick(View v)
        {
            new Thread(new Runnable() {
                public void run() {
                    postData();
                }
            }).start();
        }
    });

И моя функция PostData определена ниже:

public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("url.php");

    try {
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("vhc", "ABC124"));
        nameValuePairs.add(new BasicNameValuePair("mobile", "089944440000"));
        nameValuePairs.add(new BasicNameValuePair("time", "2014-12-28 22:22:52"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

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

        // TODO Auto-generated catch block
    }
}

Теперь я попытался отладить и обнаружил, что он не работает в HttpResponse response = httpclient.execute(httppost); шаг и приводит к IOException, пожалуйста, укажите мою ошибку, чтобы решить проблему. Благодарю!

  • 0
    URL.php не является действительным URL. Опубликуйте свой logcat.
  • 0
    Я только что сделал этот URL, чтобы показать, реальный - как www.websiteServer.com/myDBname.php?action=insert&vhc=vehiclenumber и т. Д.
Показать ещё 1 комментарий
Теги:

1 ответ

-1

В вашем текущем решении вы создаете поток, но поток выполняет код последовательно, и он не ждет ответа с вашего сервера. В результате ваш клиент получает нулевой ответ.

Решение: вы должны использовать AsyncTask для извлечения/отправки данных с/на сервер. Выполнить извлечение данных в методе doBackground для AsyncTask. И получите ответ от метода postExecute. См. Подробности здесь

  • 0
    Спасибо, я использовал Async Call сейчас, я не сталкиваюсь с IOerror, но даже сейчас данные не отправляются. Я не вижу, как моя запись отправляется в БД

Ещё вопросы

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