已建立Android连接,但未发送任何对象

时间:2012-01-25 10:50:58

标签: android networking object

我正在尝试将对象发送到我写的服务器。我刚刚了解了AsyncTask,并尝试使用它来保持网络任务不在主线程中。它当前正在建立连接但未接收对象。我知道服务器很好,因为我已经使用编写的代码从我的笔记本电脑发送对象来测试它。此外,我没有收到任何错误消息。

代码:

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来处理网络操作,是否必须设置权限或任何不同的内容。

感谢您给予的任何帮助。

2 个答案:

答案 0 :(得分:1)

你有一个空块阻止所有例外!至少记录那里正在发生的事情......

  1. 您的应用是否在其清单中声明了INTERNET权限?

  2. UserObject是否实现了Serializable?

答案 1 :(得分:0)

我发现问题是我自己的简单错误。所有代码都很好但是发送的对象在服务器上的包中不同于发送的包。更新它们,使它们在各自的位置都在同一个包中。