ジャージークライアント:クエリパラメータとしてリストを追加する方法
クエリパラメータとしてリストを持つGETサービス用のJerseyクライアントを作成しています。ドキュメントによると、クエリパラメータとしてリストを持つことが可能です(この情報は@QueryParam javadocにもあります)、それをチェックしてください: 一般に、メソッドパラメータのJavaタイプは次のようになります。 プリミティブ型であること。 単一のString引数を受け入れるコンストラクターがあります。 単一のString引数を受け入れるvalueOfまたはfromStringという名前の静的メソッドがあります(たとえば、Integer.valueOf(String)およびjava.util.UUID.fromString(String)を参照)。または List、Set、またはSortedSetであり、Tは上記の2または3を満たします。結果のコレクションは読み取り専用です。 パラメータに同じ名前の値が複数含まれている場合があります。この場合、4)のタイプを使用してすべての値を取得できます。 ただし、Jerseyクライアントを使用してリストクエリパラメータを追加する方法がわかりません。 代替ソリューションは次のとおりです。 GETの代わりにPOSTを使用します。 リストをJSON文字列に変換し、サービスに渡します。 サービスの適切なHTTP動詞はGETであるため、最初のものは適切ではありません。データ取得操作です。 あなたが私を助けることができないならば、2番目は私のオプションになります。:) 私もサービスを開発しているので、必要に応じて変更する場合があります。 ありがとう! 更新 クライアントコード(jsonを使用) Client client = Client.create(); WebResource webResource = client.resource(uri.toString()); SearchWrapper sw = new SearchWrapper(termo, pagina, ordenacao, hits, SEARCH_VIEW, navegadores); MultivaluedMap<String, String> params = new MultivaluedMapImpl(); params.add("user", user.toUpperCase()); params.add("searchWrapperAsJSON", (new Gson()).toJson(sw)); ClientResponse clientResponse = …