我正在尝试将对象发送到我写的服务器。我刚刚了解了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来处理网络操作,是否必须设置权限或任何不同的内容。
感谢您给予的任何帮助。
答案 0 :(得分:1)
你有一个空块阻止所有例外!至少记录那里正在发生的事情......
您的应用是否在其清单中声明了INTERNET权限?
UserObject是否实现了Serializable?
答案 1 :(得分:0)
我发现问题是我自己的简单错误。所有代码都很好但是发送的对象在服务器上的包中不同于发送的包。更新它们,使它们在各自的位置都在同一个包中。