RestTemplate帖子列表

时间:2015-05-28 15:17:51

标签: android resttemplate

我在Android上有一个跟踪位置的应用。我将曲目包含在列表对象中。问题是,当我将列表发送到服务器时,它永远不会到达服务器,并且从我的日志中,不会显示错误。

代码段发送到服务器

public boolean sendTracks() throws    IOException,SocketException,ConnectException{

    String url = "http://192.168.0.180:9080/AddressProcessin/rest/tracks";
    AllTracks alltracks  = new AllTracks();

    //get tracks from sqllite
    alltracks.setTrackList(helper.GetTrackData());

    HttpHeaders requestHeaders = new HttpHeaders();

    requestHeaders.setAccept(Collections.singletonList(new MediaType("application","xml")));

    HttpEntity<AllTracks> requestEntity = new HttpEntity<AllTracks>(alltracks,requestHeaders);

    // Create a new RestTemplate instance

    RestTemplate restTemplate = new RestTemplate();

    ResponseEntity<AllTracks> responseEntity = 
    restTemplate.exchange(url, HttpMethod.POST, requestEntity,     AllTracks.class);

    // get response body 
    AllTracks tracks = responseEntity.getBody();

    return true;            
}

应用类

public class AllTracks implements Serializable{

    private static final long serialVersionUID = -2109883468783032832L;

    //@ElementList(inline=true)
    private List<Tracks> trackList;

    public List<Tracks> getTrackList() {
        return trackList;
    }

    public void setTrackList(List<Tracks> trackList) {
        this.trackList = trackList;
    }    

    public AllTracks() {
        super();
        // TODO Auto-generated constructor stub
    }
}    

跟踪课程

public class Tracks implements Serializable{

    private static final long serialVersionUID = -6318006291038916587L;

    //@Element(required = false)
    @DatabaseField
    private Date dateCaptured;


    //@Element
    @DatabaseField
    private double longitude;

    //@Element
    @DatabaseField
    private double latitude;

    //@Element
    @DatabaseField
    private long userId;

    public double getLongitude() {
        return longitude;
    }    
    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }    

    public double getLatitude() {
        return latitude;
    }    

    public void setLatitude(double latitude) {
        this.latitude = latitude;
    }

    // getters and setters 
    public Date getDateCaptured() {
        return dateCaptured;
    }

    public void setDateCaptured(Date dateCaptured) {
        this.dateCaptured = dateCaptured;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    // contructor 
    public Tracks(Date dateCaptured, long userId) {
        super();
        this.dateCaptured = dateCaptured;
        this.userId = userId;
    }
    public Tracks(Date dateCaptured, double longitude, double latitude,
        long userId) {
        super();
        this.dateCaptured = dateCaptured;
        this.longitude = longitude;
        this.latitude = latitude;
        this.userId = userId;
    }
    public Tracks() {
        super();
        // TODO Auto-generated constructor stub
    }
}

1 个答案:

答案 0 :(得分:0)

您是否使用AsyncTask通过网络发送/接收您的请求?如果不是......你必须这样做!有很多关于如何在Android中使用AsyncTask的例子。

查看此链接AsyncTask Android example