RestTemplateです。URLとクエリパラメータを一緒に送信する方法
2023-10-17 02:33:42
質問
URLにパスパラメータとクエリパラメータを渡そうとしているのですが、変なエラーが出ます。
String url = "http://test.com/Services/rest/{id}/Identifier"
Map<String, String> params = new HashMap<String, String>();
params.put("id", "1234");
UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(url)
.queryParam("name", "myName");
String uriBuilder = builder.build().encode().toUriString();
restTemplate.exchange(uriBuilder , HttpMethod.PUT, requestEntity,
class_p, params);
で、URLは
http://test.com/Services/rest/%7Bid%7D/Identifier?name=myName
私はそれを動作させるために何をすべきか。私は
http://test.com/Services/rest/{id}/Identifier?name=myName
で、paramsがidをurlに追加してくれます。
提案してください。
どのように解決するのですか?
私なら
buildAndExpand
から
UriComponentsBuilder
を使って、すべてのタイプのURIパラメータを渡すことができます。
例えば
String url = "http://test.com/solarSystem/planets/{planet}/moons/{moon}";
// URI (URL) parameters
Map<String, String> urlParams = new HashMap<>();
urlParams.put("planet", "Mars");
urlParams.put("moon", "Phobos");
// Query parameters
UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(url)
// Add query parameter
.queryParam("firstName", "Mark")
.queryParam("lastName", "Watney");
System.out.println(builder.buildAndExpand(urlParams).toUri());
/**
* Console output:
* http://test.com/solarSystem/planets/Mars/moons/Phobos?firstName=Mark&lastName=Watney
*/
restTemplate.exchange(builder.buildAndExpand(urlParams).toUri() , HttpMethod.PUT,
requestEntity, class_p);
/**
* Log entry:
* org.springframework.web.client.RestTemplate Created PUT request for "http://test.com/solarSystem/planets/Mars/moons/Phobos?firstName=Mark&lastName=Watney"
*/
関連
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
Java基礎 - マッピングとQ/A
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] ファイルを作成し、書き込むにはどうすればよいですか?
-
[解決済み] クエリ文字列パラメータのJava URLエンコーディング
-
[解決済み] Flaskを使用してURLから名前付きパラメータを取得するにはどうすればよいですか?
-
[解決済み] ExpressでURLパラメータを取得する方法を教えてください。
-
[解決済み] Spring RestTemplateのパラメータ付きGET
-
[解決済み】Vue.jsでURLからクエリパラメータを取得するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
executeQuery()でデータ操作文が発行できない。解決方法
-
Collections.sortがdoubleでソートできない問題を完璧に解決する。
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
Uncaught ReferenceError: は定義されていません。
-
-bash: java: コマンドが見つからない 解決方法
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
コンストラクタDate()が未定義である問題
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
Zipファイルの圧縮・解凍にantを使用する