0

私はしばらくRestTemplateを使用していて、いつも満足しています!

しかし、今ではそれは最悪です。

私はこのように自分のプットを作ったものです:

        RestTemplate restTemplate = new RestTemplate();
        restTemplate.getMessageConverters().add(new GsonHttpMessageConverter());
        restTemplate.put(URI, object);

通常、私のサーバーはRubyの方法でURLの形式を受け入れていました:resource.json

しかし今、私はもうそうしていないサーバーを消費しています。フォーマットを処理するにはヘッダーを使用する必要があります。

すべて問題ありません。restTemplateはcontent-typeをapplication/jsonに設定しますが、Acceptヘッダーは設定しません。そのため、デフォルトの形式はHTMLであり、彼はhtmlをレンダリングしないため、サーバーは406エラーを発行しています。

では、コンテンツと受け入れヘッダーの両方をjsonに配置し、json形式の本文を追加するための回避策はありますか?

4

1 に答える 1

1

RestTemplateオブジェクトからヘッダーを取得し、それに必要なものを追加できます(ヘッダーはマップにすぎないため)。

ダムが動作させた後に提供されたサンプルコードは次のとおりです。

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new GsonHttpMessageConverter()); 
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
requestHeaders.setAccept(Arrays.asList(new MediaType[] {MediaType.APPLICATION_JSON}));
HttpEntity<T> requestEntity = new HttpEntity<T>((T) parameter, requestHeaders);  
restTemplate.exchange(URI , HttpMethod.PUT, requestEntity, null );
于 2012-10-24T20:39:08.813 に答える