2015-12-21 96 views
1

我有一個小問題,我跟着Spring RestTemplate http://docs.spring.io/autorepo/docs/spring-android/1.0.x/reference/html/rest-template.html的引導,做了一個叫POST的事情,但是當服務器應該得到JSON,沒有收到任何東西,我是確定服務器功能,我已經測試過。 有人會知道告訴我我錯在哪裏?Spring通過HTTP POST發送JSON數據不起作用

RegisterTaskMessage.java

public class RegisterTaskMessage extends AsyncTask<String, String, String> { 

    public RegisterTaskMessage() { 

    } 

    protected String doInBackground(String... params) { 

    Message message = new Message(); 
    message.setId(555); 
    message.setSubject("test params"); 
    message.setText(params[1]); 

    // Set the Content-Type header 
    HttpHeaders requestHeaders = new HttpHeaders(); 
    //requestHeaders.setContentType(new MediaType("application", "json")); 
    requestHeaders.setContentType(MediaType.APPLICATION_JSON); 
    HttpEntity<Message> requestEntity = new HttpEntity<Message>(message, requestHeaders); 

    // Create a new RestTemplate instance 
    RestTemplate restTemplate = new RestTemplate(); 

    // Add the Jackson and String message converters 
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter()); 
    restTemplate.getMessageConverters().add(new StringHttpMessageConverter()); 

    // Make the HTTP POST request, marshaling the request to JSON, and the response to a String 
    ResponseEntity<String> responseEntity = restTemplate.exchange(params[0], HttpMethod.POST, requestEntity, String.class); 
    String result = responseEntity.getBody(); 
    return null; 
    } 
} 

MainActivity.java

private void sendRegistrationIdToBackend() { 
    new RegisterTaskMessage().execute("127.0.0.1/post.php", id); 
} 

Message.java

public class Message 
{ 
    private long id; 

    private String subject; 

    private String text; 

    public void setId(long id) { 
    this.id = id; 
    } 

    public long getId() { 
    return id; 
    } 

    public void setSubject(String subject) { 
    this.subject = subject; 
    } 

    public String getSubject() { 
    return subject; 
    } 

    public void setText(String text) { 
    this.text = text; 
    } 

    public String getText() { 
    return text; 
    } 
} 

回答

0

使用this框架來註釋Message類作爲您的服務器接收數據(要小心區分大小寫/不區分大小寫等)