タグ付けされた質問 「resttemplate」

27
Spring RestTemplate-リクエスト/レスポンスの完全なデバッグ/ロギングを有効にする方法は?
私はしばらくの間Spring RestTemplateを使用しており、そのリクエストとレスポンスをデバッグしようとしているときに一貫して壁にぶつかりました。基本的に、 "verbose"オプションをオンにしてcurlを使用したときと同じものを探しています。例えば ​​: curl -v http://twitter.com/statuses/public_timeline.rss 送信データと受信データ(ヘッダー、Cookieなどを含む)の両方を表示します。 私は次のようないくつかの関連する投稿を確認しました: Spring RestTemplateで応答を記録するにはどうすればよいですか? しかし、私はこの問題を解決することができませんでした。 これを行う1つの方法は、RestTemplateソースコードを実際に変更し、そこにいくつかの追加のログステートメントを追加することですが、このアプローチは本当に最後の手段です。Spring Web Client / RestTemplateに、より親しみやすい方法ですべてをログに記録するように指示する方法がいくつかあるはずです。 私の目標は、次のようなコードでこれを実行できるようにすることです。 restTemplate.put("http://someurl", objectToPut, urlPathValues); 次に、ログファイルまたはコンソールで同じ種類のデバッグ情報(curlで取得したもの)を取得します。これは、Spring RestTemplateを使用していて問題がある人にとって非常に役立つと思います。curlを使用してRestTemplateの問題をデバッグしても、(一部のケースでは)機能しません。


5
Spring RestTemplateリクエストに「Accept:」ヘッダーを設定する方法は?
Accept:Springを使用して作成するリクエストでの値を設定したいRestTemplate。 これが私のSpringリクエスト処理コードです @RequestMapping( value= "/uom_matrix_save_or_edit", method = RequestMethod.POST, produces="application/json" ) public @ResponseBody ModelMap uomMatrixSaveOrEdit( ModelMap model, @RequestParam("parentId") String parentId ){ model.addAttribute("attributeValues",parentId); return model; } ここに私のJava RESTクライアントがあります: public void post(){ MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>(); params.add("parentId", "parentId"); String result = rest.postForObject( url, params, String.class) ; System.out.println(result); } これは私にとってはうまくいきます。サーバー側からJSON文字列を取得します。 私の質問は:私は指定することができますどのようにAccept:ヘッダ(例えばapplication/json、application/xml(例えば、...)とリクエストメソッドGET、POST、...)私はRestTemplateを使うのか?

4
Spring RestTemplateでフォームデータをPOSTする方法
次の(機能する)curlスニペットをRestTemplate呼び出しに変換したい: curl -i -X POST -d "email=first.last@example.com" https://app.example.com/hr/email emailパラメータを正しく渡すにはどうすればよいですか?次のコードでは、404 Not Foundレスポンスが返されます。 String url = "https://app.example.com/hr/email"; Map<String, String> params = new HashMap<String, String>(); params.put("email", "first.last@example.com"); RestTemplate restTemplate = new RestTemplate(); ResponseEntity<String> response = restTemplate.postForEntity( url, params, String.class ); PostManで正しい呼び出しを定式化しようとしましたが、本文で「form-data」パラメーターとしてemailパラメーターを指定することで、正しく機能するようにできます。RestTemplateでこの機能を実現する正しい方法は何ですか?

14
JSONのRestTemplateを介したPOSTリクエスト
私は問題を解決する方法の例を見つけられなかったので、あなたに助けを求めたいと思います。JSONでRestTemplateオブジェクトを使用してPOSTリクエストを送信することはできません 私が得るたびに: org.springframework.web.client.HttpClientErrorException:415 Unsupported Media Type RestTemplateを次のように使用します。 ... restTemplate = new RestTemplate(); List<HttpMessageConverter<?>> list = new ArrayList<HttpMessageConverter<?>>(); list.add(new MappingJacksonHttpMessageConverter()); restTemplate.setMessageConverters(list); ... Payment payment= new Payment("Aa4bhs"); Payment res = restTemplate.postForObject("http://localhost:8080/aurest/rest/payment", payment, Payment.class); 私のせいは何ですか?
126 java  json  spring  rest  resttemplate 

8
Spring RestTemplateタイムアウト
Webアプリケーションで使用されるRESTサービスの接続タイムアウトを設定したいのですが。SpringのRestTemplateを使用してサービスと通信しています。私はいくつかの調査を行い、以下のxmlを見つけて使用しました(私のアプリケーションxml内)。これは、タイムアウトを設定するためのものです。Spring 3.0を使用しています。 RestTemplateを使用したSpring Webサービスのタイムアウト構成でも同じ問題が発生しましたが、ソリューションはそれほどきれいではないようです。Spring構成を介してタイムアウト値を設定することをお勧めします <bean id="RestOperations" class="org.springframework.web.client.RestTemplate"> <constructor-arg> <bean class="org.springframework.http.client.CommonsClientHttpRequestFactory"> <property name="readTimeout" value="${restURL.connectionTimeout}" /> </bean> </constructor-arg> </bean> readTimeoutを何に設定しても、次のようになります: ネットワークケーブルが切断されました: 約20秒待機し、次の例外を報告します: org.springframework.web.client.ResourceAccessException:I / Oエラー:ホストへのルートがありません:接続。ネストされた例外はjava.net.NoRouteToHostException:ホストへのルートがありません:接続 URLが正しくないため、404がRESTサービスによって返されました: 約10秒間待機し、次の例外を報告します: org.springframework.web.client.HttpClientErrorException:404 Not Found 私の要件では、タイムアウトを短くする必要があるため、これらを変更できるようにする必要があります。私が間違っていることについてのアイデアはありますか? どうもありがとう。

10
Spring Resttemplateの例外処理
以下はコードスニペットです。基本的に、エラーコードが200以外の場合に例外を伝播しようとしています。 ResponseEntity<Object> response = restTemplate.exchange(url.toString().replace("{version}", version), HttpMethod.POST, entity, Object.class); if(response.getStatusCode().value()!= 200){ logger.debug("Encountered Error while Calling API"); throw new ApplicationException(); } ただし、サーバーからの500応答の場合、例外が発生します org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94) ~[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE] 本当に残りのテンプレート交換メソッドをラップする必要がありますか?コードの目的は何でしょうか?

9
Springブートアプリケーションでフィールド:RestTemplateを自動配線できませんでした
起動時にスプリングブートアプリケーションを実行すると、例外が発生します。 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.web.client.RestTemplate com.micro.test.controller.TestController.restTemplate; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.web.client.RestTemplate] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. …

8
SpringrestTemplateを使用したRESTAPIの基本認証
私はRestTemplateと基本的にRESTAPIもまったく新しいです。Jira REST APIを介してアプリケーション内のデータを取得したいのですが、401Unauthorizedを取得しています。jira rest apiドキュメントに関する記事が見つかりましたが、例ではcurlを使用したコマンドラインの方法を使用しているため、これをJavaに書き換える方法がわかりません。書き直す方法についての提案やアドバイスをいただければ幸いです。 curl -D- -X GET -H "Authorization: Basic ZnJlZDpmcmVk" -H "Content-Type: application/json" "http://kelpie9:8081/rest/api/2/issue/QA-31" SpringRESTテンプレートを使用してJavaに変換します。ここで、ZnJlZDpmcmVkは、base64でエンコードされたusername:passwordの文字列です。どうもありがとうございました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.