- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有用于身份验证的自定义拦截器:
@Named("authInterceptor")
@Provides
@Singleton
fun providesAuthInterceptor(preferencesManager: PreferencesManager): Interceptor {
return Interceptor { chain ->
val newBuilder = chain.request().newBuilder()
newBuilder.addHeader("access-token", preferencesManager.getAccessToken())
val request = newBuilder.build()
return@Interceptor chain.proceed(request)
}
}
但我有一些不需要授权 header 的调用。
我希望在我的服务中有:
interface NetService {
@NEEDAUTH
@GET("users")
fun getAllShops(key: String): Single
@FormUrlEncoded
@POST("users")
fun register(@Field("nickname") nickname: String): Single
}
因此,第一个调用将使用 authInterceptor,第二个将不会使用它。
câu trả lời hay nhất
从Retrofit 2.6.0版本开始,可以通过tag字段获取OkHttp Interceptor中的注解,如下所示:
response.request.tag(Invocation::class.java)?.method()?.getAnnotation(YourAnnotation::class.java)
然后在拦截器内部,您可以验证请求是否被注释。
改造变更日志:
New: @Tag parameter annotation for setting tags on the underlying OkHttp Request object. These can be read in CallAdapters or OkHttp Interceptors for tracing, analytics, varying behavior, and more.
https://github.com/square/retrofit/pull/2899/files
关于android - 改造 2 : Custom annotations for custom interceptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47760861/
Câu hỏi của tôi là một nhánh của câu hỏi này. Tôi có chú thích (như chú thích cuộc gọi) mà tôi muốn xác thực. Tôi có thể sử dụng trình xác thực @phone để kiểm tra xem đối tượng điện thoại có hợp lệ hay không. Tôi cũng muốn có thể đặt trình xác nhận này vào đối tượng thông tin liên hệ có chứa điện thoại. Có cách nào không
Câu hỏi của tôi là một nhánh của câu hỏi này. Tôi có chú thích (như chú thích cuộc gọi) mà tôi muốn xác thực. Tôi có thể sử dụng trình xác thực @phone để kiểm tra xem đối tượng điện thoại có hợp lệ hay không. Tôi cũng muốn có thể đặt trình xác nhận này vào đối tượng thông tin liên hệ có chứa điện thoại. Có cách nào không
Ví dụ class LoggingService [Inject] (protected val logger: Logger) class LoggingService @Inject (protect
Bạn có nghĩ mình là bậc thầy java không? Bạn có quen thuộc với các bí mật API phản chiếu không? công khai @interface @a {} công khai @interface @b {} @Mark công khai @i
Tôi rất mới với Spring và JUnit. Tôi đang cố chạy một trường hợp kiểm thử JUnit đơn giản cho một lớp dịch vụ mùa xuân nhưng không thành công và tôi gặp phải ngoại lệ này. Tôi chưa viết bất kỳ bài kiểm tra nào nhưng sẽ thử chạy chúng trước khi triển khai nó. Sử dụng để
Rất mới đối với mùa xuân và JUnit. Tôi đang cố chạy một trường hợp kiểm thử JUnit đơn giản cho một lớp dịch vụ mùa xuân nhưng không thành công với ngoại lệ này. Tôi chưa viết bất kỳ bài kiểm tra nào, nhưng hãy thử kiểm tra trước khi thực hiện. làm
Tôi có một Kiểm tra thực thể sẽ lấy các thuộc tính (và các phương thức cơ bản) của nó từ một đặc điểm: class Test { use Trait_title } trait Trait_title{ /** *
Tôi (tất nhiên) đang cố gắng duy trì một dự án bằng cách sử dụng nhiều cấu trúc mà tôi không hiểu lắm. Trong khi cố gắng tìm hiểu cách sử dụng AOP trong Spring, tôi đã tìm thấy một phương pháp có chú thích sau: @Around(value = "@annotation(
Hiện tại tôi đang viết bộ xử lý chú thích sẽ tạo mã nguồn mới. Bộ xử lý này được tách biệt khỏi chính ứng dụng và vì đây là một bước trong quá trình xây dựng dự án nên tôi giữ toàn bộ hệ thống xây dựng tách biệt khỏi ứng dụng. Đây là lúc vấn đề bắt đầu, vì tôi muốn xử lý các chú thích được tạo trong ứng dụng. TÔI
Tôi đang sử dụng bộ xử lý chú thích Vertx Service Gen với Kotlin kapt. Trước khi bộ xử lý chú thích khởi động, kapt của tôi không thành công với thông báo ngoại lệ sau ở mọi nơi: error: scoping const
Tôi đang gặp khó khăn khi tìm cách lấy tham chiếu đến java.lang.annotation.Annotation từ lớp triển khai thực tế của nó. Bản thân chú thích trông như thế này (từ khung): @Target({ElementType.TYPE
Cách tạo chú thích như @Table(name="batch", UniqueConstraints= @UniqueConstraint(columnNames = {"comound_id"
Mình mới bắt đầu sử dụng Spring Boot và bị lỗi này lâu rồi mà tiếc là không khắc phục được. Tôi đã tìm kiếm trên Google kể từ đó và vẫn không thể tìm thấy những gì tôi đang làm sai. Tìm thấy bên dưới mã của tôi: . thực thể. dao. chủ yếu. tỷ lệ lỗi. Bắt đầu ứng dụng
Lỗi: Thực hiện không thành công cho tác vụ ':app:checkDebugDuplicateClasses'. 1 ngoại lệ đã được đưa ra bởi công nhân
Giả sử tôi muốn sử dụng chú thích macro để sao chép các chú thích như @specialized(Int) - Tôi biết điều đó thật điên rồ. Một cái gì đó như thế này: mở rộng lớp (mở rộng: Bất kỳ*) mở rộng Chú thích
Giả sử tôi muốn sử dụng chú thích macro để sao chép các chú thích như @specialized(Int) - Tôi biết điều đó thật điên rồ. Một cái gì đó như thế này: mở rộng lớp (mở rộng: Bất kỳ*) mở rộng Chú thích
Trong quá trình xử lý chú thích, tôi hiện đang xử lý chú thích trên một phương thức: @Override public boolean process(Set Elements, RoundEnvironment env) { Mess
Tôi có tài nguyên giao diện và một số lớp triển khai nó, như âm thanh, video... Hơn nữa, tôi đã tạo chú thích tùy chỉnh MyAnnotation: @MyAnnotation(type = Audio.class) cl
Dự án của tôi bao gồm Bộ điều khiển không được quản lý cũ hơn và Bộ điều khiển dựa trên chú thích mới hơn. Tôi đang sử dụng Spring jar mới nhất (3.0.5), trong bộ điều phối-servlet.xm của tôi
Tôi đang viết một số nội dung win32 đơn giản và tôi đang sử dụng wWinMain int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance sau đây
Tôi là một lập trình viên xuất sắc, rất giỏi!