Tôi đang làm việc trên một ứng dụng web sử dụng Jersey. Tôi đang cố gắng để thực hiện một loại sau khi nhận được điều bằng cách sử dụng một URIBuilder và một phản ứng seeOther. Mục đích là để chuyển hướng đến cùng một URI trình duyệt đã được bật, nhưng để buộc GET. Nó hoạt động một chút như thế này:Jersey - Chuyển hướng bằng cách sử dụng không được đặt, nguyên nhân chuyển hướng vòng lặp
- Yêu cầu do thỏa thuận qua PUT
- yêu cầu PUT xử lý
- phản ứng SeeOther trở
gì nên xảy ra là trình duyệt nhặt 303 Xem khác và thực hiện một GET trên URI nó nhận được. Thật không may, những gì đang xảy ra là nó thực hiện một PUT trên URI thay vì (theo như tôi có thể nói) và PUT gửi nó trở lại Bước 1. ở trên, gây ra một vòng lặp chuyển hướng.
Mọi ý tưởng có vấn đề gì ở đây?
private Response giveSeeOther(){
/*Get the base URI builder*/
final UriBuilder uriBuilder = m_uriInfo.getBaseUriBuilder();
/* Some stuff to create the URI */
final Map<String, Object> parameterMap = new HashMap<String, Object>();
parameterMap.put("uid", getUid());
final URI redirectUri = uriBuilder.path(SomeObject.class).
path(SomeObject.class, "get").
buildFromMap(parameterMap);
/* See Other (303) */
return Response.seeOther(redirectUri).build();}
Đó là mã để xem phương pháp khác. Tôi không chắc bạn muốn xem mã nào khác, nhưng hãy cho tôi biết.
Mã của bạn cho 'seeOther' trông ổn (không phải là tôi hiểu uriBuilder làm gì với các lớp). Một điều cần kiểm tra là bạn gọi 'giveSeeOther()' chỉ từ một trình xử lý PUT và không phải từ một trình xử lý chung. Tôi cũng muốn biết những tác nhân người dùng nào bạn thấy hành vi này. – Guss