在restTemplate postForObject中发送序列化的JSON

时间:2013-04-02 19:29:09

标签: java spring resttemplate

这是合约。

我发送了一个 postForObject 。在 postForObject 中,我必须发送 2 对象:

  • JSON 对象名称“数据”(例如: 数据= { “客户端”: “姓名”, “ID”: “3”})
  • STRING WITH NAME “SESSION_TOKEN”(例如:session_token =“abc”)

我已经尝试了很多方法,但我总是从服务器收到 400(BAD REQUEST),即使与 CURL 一起使用的方式相同的 PHP 即可。 (我已经检查了curl php脚本发送的参数,并且正是我上面描述的两个参数)

所以,这是我的问题:

  1. 如何管理/创建 2 参数(JSON被序列化)并通过 postForObject 发送?有人可以解释一步一步这个过程吗? (因为我是Java / Spring的新手,所以我可以很好地理解这个问题)
  2. P.S。: 我已经完成了多个 getForObject 功能。我真的只需要 HOW 的方式我能用 postForObject 传递这些参数(1个Json 序列化和1个字符串)。

    -------------------------------------------- ------

    更新 (发送帖子参数正在运行)

    我通过 postForObject

    成功发送POST数据

    只需像这样创建RestTemplate:

    RestTemplate restTemplate = new RestTemplate();
    
    HttpMessageConverter formHttpMessageConverter = new FormHttpMessageConverter();
    HttpMessageConverter stringHttpMessageConverternew = new StringHttpMessageConverter();
    

    并且必须使用 MultiValueMap 创建属性,如下所示:

        MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
        map.add("session_token",session_token);
    

    然后,完成后,发送 postForObject ,如下所示:

        restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
    
        String result = restTemplate.postForObject(API_URL + "company/6788/appointment/", map, String.class);
    

    现在的问题是:

    这是完全序列化 JSON 的最佳方式:

    {"client_email":"kalvinmoraes@gmail.com","client_name":"Alexandre Moraes"}
    

    %7B%22client_email%22%3A%22kalvinmoraes%40gmail.com%22%2C%22client_name%22%3A%22Alexandre%20Moraes%22%7D
    

0 个答案:

没有答案