2012-01-25 4 views
0

Я пытаюсь отправить объект на сервер, который я написал. Я только что узнал об AsyncTask и пытаюсь использовать его для того, чтобы сетевые задачи были отключены от основного потока. В настоящее время он устанавливает соединение, но не получает объект. Я знаю, что сервер в порядке, потому что я проверил его, используя код, написанный для отправки объекта с моего ноутбука. Также я не получаю сообщений об ошибках.Android Connection создан, но нет Объект отправлен

Код:

private class sendToServer extends AsyncTask<UserObject, Integer, Double> { 
    @Override 
    protected Double doInBackground(UserObject...userObjects) { 
     ObjectOutputStream oos = null; 

     String Header = "GPSUpdate"; 
     String Userid = "07000000001"; 
     String Latitude = "6.00"; 
     String Longitude = "6.00"; 

     try{ 
      Socket socket = new Socket("igor.gold.ac.uk", 3000); 
      oos = new ObjectOutputStream(socket.getOutputStream()); 

      UserObject [] userObject = new UserObject[1]; 
      userObject[0] = new UserObject(); 
      userObject[0].setHeader(Header); 
      userObject[0].setUserid(Userid); 
      userObject[0].setLatitude(Latitude); 
      userObject[0].setLongitude(Longitude); 

      oos.writeObject(userObject[0]); 
      oos.flush(); 
      oos.close(); 
     } 
     catch(Exception e){ 
     } 
     return null; 
    } 
    @Override 
    protected void onProgressUpdate(Integer... progress) { 
    } 
    @Override 
    protected void onPostExecute(Double result) { 
    } 
} 

Кроме того, код, чтобы отправить объект работает, когда бежал от моего ноутбука. Должен ли я устанавливать разрешения или что-то другое, если я использую AsyncTask для обработки сетевых операций.

Спасибо за предоставленную помощь.

ответ

1

У вас есть пустой блок ловли все исключений! По крайней мере, зарегистрируйте то, что происходит там ...

  1. У вашего приложения есть разрешение INTERNET, указанное в его манифесте?

  2. Имеет ли пользовательский объект Object Serializable?

+0

Я напечатал из улова, и, как представляется, ошибок не возникает. Я уже объявил ИНТЕРНЕТ в манифесте, и он реализует Serializable. – Arran

0

Я нашел проблему, это была моя собственная простая ошибка. Весь код был прав, но отправляемый объект находился на другом пакете на сервере, чем тот, который был отправлен. Обновили их, чтобы они были в одном пакете в соответствующем месте.

Смежные вопросы