目前,我在翻新方面遇到一些问题。 我为RetrofitInstance
提供的URL正在针对第二个请求进行更改。以下是代码:
object RetrofitClientInstance{
private var retrofit: Retrofit? = null
//private const val BASE_URL = "http://api.sample.com/req/";
private const val BASE_URL = "http://test.sample.com/req/"
private const val BASE_URL_VERSION = "v1/"
fun getRetrofitInstance() : Retrofit {
if (retrofit == null) {
retrofit = Retrofit.Builder()
.baseUrl(BASE_URL + BASE_URL_VERSION)
.addConverterFactory(GsonConverterFactory.create())
.build()
}
return this!!.retrofit!!
}
}
以下是用于不同API请求的interface
方法:
class UserLoginResponseReceiver{
interface GetDataService {
@FormUrlEncoded
@POST(UrlEndPoints.USER_LOGIN_BY_FACEBOOK)
fun loginUserByFacebook(@Field("access_token") last: String): Call<FbLoginResponse>
@GET(UrlEndPoints.ALL_POSTS)
fun getAllPosts() : Call<AllPostsResponse>
}
}
UrlEndPoints.kt
object UrlEndPoints {
const val USER_LOGIN_BY_FACEBOOK = "user/auth/facebook"
const val ALL_POSTS = "post"
}
对于第一个请求( loginUserByFacebook ),我通过调试响应获得的URL是:
这很好,并且运行良好。但是对于第二个请求( getAllPosts() ),我得到了以下URL:
“ req / v1” 部分已完全切断!结果,我没有得到期望的响应。这到底是什么问题?请帮助我。
答案 0 :(得分:1)
我无法重现此内容,您应该尝试清理/重建项目,此处提供的代码没有错误。
这是我添加的用于测试的代码:
DISPLAY=:0
按预期返回此处的URL,如下所示:
class AllPostsResponse
class FbLoginResponse
fun main(args: Array<String>) {
val service = RetrofitClientInstance.getRetrofitInstance()
.create(UserLoginResponseReceiver.GetDataService::class.java)
val url = service.getAllPosts().request().url()
println(url)
}