Я пытаюсь загрузить ресурс из службы, используя Retrofit2, следуя их руководству.Код находится в Kotlin, и сервис использует OAuth 1.0a.
interface DownloadManager {
companion object {
private val httpClient = OkHttpClient.Builder()
private val builder = Retrofit.Builder()
.baseUrl(RESOURCE_URL)
.addConverterFactory(SimpleXmlConverterFactory.create())
private var retrofit = builder.build()
lateinit var client: DownloadManager
fun createService(token: String) {
if (!TextUtils.isEmpty(token)) {
val interceptor = AuthenticationInterceptor(token)
if (!httpClient.interceptors().contains(interceptor)) {
httpClient.addInterceptor(interceptor)
}
builder.client(httpClient.build())
retrofit = builder.build()
}
client = retrofit.create(DownloadManager::class.java)
}
}
@GET("/page.ashx")
fun download(@Query("id") id: String): Call<Data>
}
internal class AuthenticationInterceptor(private val authToken: String): Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val original = chain.request()
val builder = original.newBuilder()
.header("Authorization", authToken)
val request = builder.build()
return chain.proceed(request)
}
}
Проблема в токене: что я должен пройти?Я могу загрузить следующий код с помощью Signpost, но не могу воспроизвести подписание запроса с помощью API-ключа и секретного ключа, а также токена и секретного доступа.