web-dev-qa-db-ja.com

Bodyパラメータを使用したRestTemplatePost Requestのヘルプが必要ですか?

私はRESTAPI URLを持っており、RESTクライアント(restclient-ui-2.4-jar-with-dependencies)を介してPOSTリクエストと本文(ユーザー名、パスワード、その他のパラメーター))を送信しました。問題なく正常に動作しました。

例:

URL: https://test.com/cgi-bin/testing/api 本文:username = testuser&password = pass123&id = 13002&name = raju

Spring RestTemplate postForObject(url、varmap、Employee.class)メソッドを使用した場合、同じことがうまく機能しません。

リクエストがURLで、本文パラメータがあり、レスポンスがクラスでマップされたXMLである簡単な例を誰かが手伝ってくれますか?

サンプルコード:

  MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
  map.add("username", "test");
  map.add("password", "test123");
  map.add("id", "1234");
  MarshallingHttpMessageConverter mc = new MarshallingHttpMessageConverter();
  mc.setMarshaller(new Jaxb2Marshaller());
  mc.setUnmarshaller(new Jaxb2Marshaller());
  list.add(marshallingHttpMessageConverter);
  emediateRestTemplate.setMessageConverters(list);
  Employee employee = (Employee) restTemplate.postForObject(url, map, Employee.class);

よろしくお願いします、Kathir

8
Kathir

上記のコンバーター例:「MarshallingHttpMessageConverter」は必要ありません。

MultiValueMap<String, String> parametersMap = new LinkedMultiValueMap<String, String>();
parametersMap.add("username", "test");
parametersMap.add("password", "test123");
parametersMap.add("id", "1234");

投稿の場合:

restTemplate.postForObject(url, parametersMap, Employee.class);

urlは次のとおりです。文字列-RESTAPIURLパラメータマップ-MultiValueMap従業員-JSON応答から変換する必要があるオブジェクト

忘れる:

restTemplate.getForObject(url,  class object, variablesMap);

urlは次のとおりです。文字列-RESTAPIURL変数マップ-マップクラスオブジェクト-JSON応答から変換する必要があるオブジェクト

14
Kathir