我有一个服务,它返回Single>
@GET("users/me/favourite-items-by-shop") fun getFavourites(@Header("Authorization") authorization: String?): Single<List<FavouriteItemResponse>>
并且我有一个存储库,我想在其中获取列表
override fun getItems(): Single<List<ItemResponse>> {
return service.getFavourites(token)
.map(FavouriteItemResponse::items)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
}但我弄错了
required:Function<in List<FavouriteItemResponse>!, out (???..???)>!
Found: KProperty1<FavouriteItemResponse, ShopResponse>我怎么才能修复它?
发布于 2018-07-03 19:57:50
尝试此代码以错误的方式定义头文件..
@Headers("Content-Type:application/json")
@POST(NetworkConstants.WS_SEND_MESSAGE)
Call<MessageResponse> sendMessage(@Body UserData data);你还需要在所有api请求中定义token,然后将其添加到改进对象定义时间中。
private Retrofit getClient(final Context context) {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder client = new OkHttpClient.Builder();
client.readTimeout(60, TimeUnit.SECONDS);
client.writeTimeout(60, TimeUnit.SECONDS);
client.connectTimeout(60, TimeUnit.SECONDS);
client.addInterceptor(interceptor);
client.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (context == null) {
request = request
.newBuilder()
.build();
} else {
request = request
.newBuilder()
.addHeader("Authorization", "Bearer " + AppSetting.getStringSharedPref(context, Constants.USER_KEY_TOKEN, ""))
.build();
}
return chain.proceed(request);
}
});
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client.build())
.addConverterFactory(GsonConverterFactory.create())
.build();
return retrofit;
}但是java中的代码
发布于 2018-07-03 22:44:19
我可以把它修好
return service.getFavourites(token)
.map { it[0] }
.map { it.items }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())https://stackoverflow.com/questions/51153966
复制相似问题