Tag: kotlin retrofit2

Android Retrofit +带有空实体的SimpleXmlConverter

我试图用SimpleXmlConverter来请求改进的Restful api数据。 但是我得到了这个错误。 org.simpleframework.xml.core.ConstructorException: Parameter 'comMsgHeader' does not have a match in class tylenol.common.model.retrofit.routelist.ServiceResult 示例XML请求 <ServiceResult> <comMsgHeader/> <– This tag make me annoying –> <msgHeader> <headerCd>0</headerCd> <headerMsg>…</headerMsg> <itemCount>0</itemCount> </msgHeader> <msgBody> <itemList> …. </itemList> </msgBody> 这是我的数据类由kotlin写的。 data class ServiceResult( val msgHeader: MsgHeader? = null, val msgBody: MsgBody? = null, val comMsgHeader: List<ComMsgHeader>? = null) 对不起,英语不好。

JsonArray到Kotlin数据类使用Retrofit(期望的BEGIN_OBJECT,但是BEGIN_ARRAY)

我正在使用Retrofit2 fun create(): MyApiService { return Retrofit.Builder() .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .baseUrl(BASE_URL) .build() .create(MyApiService::class.java) } 隐式转换下面的Json [{ "id": 1, "name": "John", }, { "id": 2, "name": "Mary", } ] 转换成Kotlin数据类 object Model { data class Person(val id: Int, val name: String) } 但是,我正在尝试使用Expected BEGIN_OBJECT but was BEGIN_ARRAY错误 @GET("/people.json") fun getPeople() : Observable<Model.Person> 我试着改变Model对象从列表扩展(正如你通常在使用Java的改造1)或创建人的List字段,但无济于事。

在Kotlin中使用Flowable的多个改进2请求

为了提高我在kotlin,Rx,Retrofit2方面的技能,我决定做一个演示项目。 演示项目包括在回收站视图中显示帖子,然后在详细活动中显示帖子的详细信息。 我遇到了显示来自不同API调用的数据的困难:用户名,标题,帖子正文以及帖子的评论数量。 我的问题是,我想要做多个请求,然后获取所需的所有数据,以便在详细的活动中显示它们。 这意味着做一个电话,给我的用户名,然后打电话给我的帖子的评论数。 帖子的标题和正文来自于主要活动中的一个请求,我只是把它传递给详细的活动。 Api调用: //返回帖子的评论1 http://jsonplaceholder.typicode.com/comments?postId=1 //返回用户2的信息 http://jsonplaceholder.typicode.com/users/2 //调用用于显示主要活动中的帖子 HTTP:/jsonplaceholder.typicode.com/posts 我还是Rx上的新手,我正在考虑使用flatMap,但我不知道如何在kotlin中使用Flowable。 var post = viewModel.getPost() var userStream: Flowable<User> = postService.getUser(post.userId) var commentsByPostIdCall: Flowable<List<Comment>> = postService.getCommentsByPostId(post.id) userStream.subscribeOn(Schedulers.io()) .subscribe(object : Subscriber<User> { override fun onError(t: Throwable?) { Log.d(this.toString(), " Read of users failed with the following message: " + t?.message); } override fun onNext(user: […]