Tôi muốn sử dụng số NetworkImageView
của Volley để tải hình ảnh từ API REST của tôi cần Ủy quyền HTTP cơ bản. Vì vậy, tôi cần phải thêm tiêu đề để yêu cầu HTTP.Android Volley ImageLoader - Cách sử dụng Ủy quyền HTTP cơ bản?
Tôi đã thực hiện lên các phương pháp sau đây:
Override Request.getHeaders()
- như mô tả trong this question. Điều này sẽ ổn, nhưng vấn đề là ImageLoader
có new ImageRequest()
được mã hóa cứng vì vậy tôi không thể chuyển thực hiện Request
thành ImageLoader
và không thể kế thừa và chỉnh sửa dễ dàng (phương pháp tôi cần phải thực hiện lại sử dụng thuộc tính riêng tư).
Giải pháp là sửa đổi thư viện Volley (những gì tôi muốn tránh).
Sử dụng tùy chỉnh HttpClientStack - như được mô tả here. Sử dụng phương pháp này tôi có thể chặn giao tiếp HTTP và thêm các tiêu đề cần thiết. Nhưng tôi nghĩ rằng đây không phải là cách đúng để làm - Tôi sẽ mất tự động lựa chọn của HttpClient bởi Volley (Gingerbread vs HC và IC).
Có cách nào đơn giản hơn để đạt được điều này mà tôi đang thiếu không?
Cảm ơn bạn đã trả lời. Thật đáng tiếc là không có cách nào đơn giản hơn. Tôi sẽ làm theo cách bạn đề xuất - bằng cách sửa đổi ImageLoader để sử dụng lớp ImageRequest tùy chỉnh (bằng cách tạo và chuyển đến ImageLoader một ImageRequestFactory). Nếu tôi đúng, những người vô danh chỉ là những Người nghe được chuyển tới ImageRequest, chứ không phải là ImageRequest, vì vậy nó không phải là một vấn đề. – lopisan
có một ImageRequest ẩn danh để gọi onGetImageSuccess (cacheKey, response); trong onResponse (mặc dù tôi đã đặt trực tiếp điều đó vào ImageRequest, hoặc thậm chí trong Yêu cầu.) – njzk2