13

RESTTemplate を使用してカスタム オブジェクトを REST サービスに渡す必要があります。

RestTemplate restTemplate = new RestTemplate();
MultiValueMap<String, Object> requestMap = new LinkedMultiValueMap<String, Object>();
...

requestMap.add("file1", new FileSystemResource(..);
requestMap.add("Content-Type","text/html");
requestMap.add("accept", "text/html");
requestMap.add("myobject",new CustomObject()); // This is not working
System.out.println("Before Posting Request........");
restTemplate.postForLocation(url, requestMap);//Posting the data.
System.out.println("Request has been executed........");

カスタム オブジェクトを MultiValueMap に追加できません。リクエストの生成に失敗しています。

誰かがこの方法を見つけるのを手伝ってくれますか? 文字列オブジェクトを問題なく渡すことができます。ユーザー定義のオブジェクトが問題になります。

どんな助けにも感謝します!!!

4

3 に答える 3

34

Jackson を使用すると、かなり簡単に実行できます

これは、単純な POJO の投稿用に私が書いたものです。

@XmlRootElement(name="newobject")
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class NewObject{
    private String stuff;

    public String getStuff(){
        return this.stuff;
    }

    public void setStuff(String stuff){
        this.stuff = stuff;
    }
}

....
//make the object
NewObject obj = new NewObject();
obj.setStuff("stuff");

//set your headers
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

//set your entity to send
HttpEntity entity = new HttpEntity(obj,headers);

// send it!
ResponseEntity<String> out = restTemplate.exchange("url", HttpMethod.POST, entity
    , String.class);

上記のリンクは、必要に応じて設定する方法を教えてくれます。そのかなり良いチュートリアルです。

于 2012-06-20T14:34:14.357 に答える
0

RestController で NewObject を受け取るには

@PostMapping("/create") public ResponseEntity<String> createNewObject(@RequestBody NewObject newObject) { // do your stuff}
于 2016-10-05T06:55:48.360 に答える