Tôi đang xây dựng một dịch vụ web chung và cần lấy tất cả các tham số truy vấn thành một chuỗi để phân tích cú pháp sau này. Tôi có thể làm cái này như thế nào?
Câu trả lời:
Bạn có thể truy cập một tham số thông qua @QueryParam("name")
hoặc tất cả các tham số thông qua ngữ cảnh:
@POST
public Response postSomething(@QueryParam("name") String name, @Context UriInfo uriInfo, String content) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}
Chìa khóa là @Context
chú thích jax-rs , có thể được sử dụng để truy cập:
UriInfo, Yêu cầu, HttpHeaders, SecurityContext, Nhà cung cấp
Thêm một chút nữa vào câu trả lời được chấp nhận. Cũng có thể lấy tất cả các tham số truy vấn theo cách sau mà không cần thêm tham số bổ sung vào phương thức, điều này có thể hữu ích khi duy trì tài liệu swagger.
@Context
private UriInfo uriInfo;
@POST
public Response postSomething(@QueryParam("name") String name) {
MultivaluedMap<String, String> queryParams = uriInfo.getQueryParameters();
String nameParam = queryParams.getFirst("name");
}