草庐IT

Retrofit

全部标签

java - 使用 Retrofit POST 的 Call<T> 类型的用途

http请求和java以及改造的新手所以这可能是一个基本问题但是......我已经成功地设置了对Web服务的http调用,但一方面我有点困惑,主要是基于我从教程/示例中看到的内容。我见过很多这样的例子:@POST("/api")CallsavePost(@BodyFoofoo);我的理解是,参数“foo”将由所选转换器转换为json,并作为http请求的主体传递。我不明白的是为什么Call的响应体类型也是Foo?这里是否假设响应也将反序列化为Foo对象?做出与您发送的正文相匹配的回应是常见的做法吗?我将其用于GET之类的操作,但并不真正明白为什么您会期望POST得到这样的响应。

java - 在 Retrofit 调用后更改折叠工具栏标题

我正在尝试根据Retrofit2响应修改工具栏标题,但没有任何变化。getSupportActionBar().setTitle("herework");finalCallgetProcess=WiimApi.getService(serverAddress).getProcess(id);getProcess.enqueue(newCallback(){@OverridepublicvoidonResponse(Callcall,Responseresponse){mProcess=response.body();getSupportActionBar().setTitle(mPro

android - 使用 Retrofit 阻塞请求拦截器?

有没有好的方法来实现“阻塞式”请求拦截器?主要思想是应拦截所有请求并添加额外的header-token。如果token尚不存在,则应首先检索它,然后将其添加到该请求并缓存以备将来使用。token通过API调用检索。我尝试执行同步请求,但是,这会产生android.os.NetworkOnMainThreadException。并使用in_progress标志实现它看起来不太好。 最佳答案 您已经可以使用RequestInterceptor完成“拦截”部分.只需使用RestAdapter.Builder.setRequestInter

android - 将 Retrofit 和 GreenDao 与嵌套的 json 对象一起使用

我想结合使用Retrofit和GreenDao,但嵌套的Json对象有问题。我的嵌套字段仍然是空的。这是Json数据结构[{"id":1,"street":"Streetname","zipcode":12345,"city":"MyCity","phone_number":"+123456789","position":"12.0000,9.0000","company":{"title":"CompanyName","group":{"title":"GroupName"}}}]我的DaoGenerator是这样的EntitycustomItem=schema.addEntity(

android - Retrofit,如何解析带有可变键的JSON对象

首先我知道我的标题不好,因为我没有想出更好的,我愿意接受建议。我正在使用改造从此类api获取数据:@GET("users/{userid}")它工作正常,我很满意,问题是当我用@POST("users/widget")调用同一个api和一个id列表时。我有以下答案:{"long_hash_id":{"_id":"long_hash_id".......},"long_hash_id":{"_id":"long_hash_id",.....},........}“long_hash_id”通常是“525558cf8ecd651095af7954”它对应于附加到它的用户的ID。在没有使用r

android - Retrofit 2.0 - 自定义 CallAdapterFactory - 回调不会在 MainThread 上发生

我正在将我的Android应用程序迁移到Retrofit2.0。我有一个扩展RetrofitError的自定义ErrorHandler,因此我可以对不同的Http错误使用react。现在我明白我必须创建一个自定义CallAdapterFactory。我使用了提供的示例ErrorHandlingCallAdapterhere.我生成的CallAdapter几乎是相同的代码,但如果需要,我也可以发布我的代码。发生的事情是,当我使用此CallAdapterFactory时,回调不会在MainThread上发生。我在尝试更新UI(我总是需要更新)时得到android.view.ViewRoot

android - 使用 Retrofit 搜索 api

我需要在我的Android应用程序中实现搜索功能。该API不是合适的搜索API,它是这样的https://example.com/api/list/photos/?start=0&end=30&search=something所以,基本上,我必须为搜索查询的每个字母查询后端,并且端点已分页,以便我可以控制要显示的条目数。我读了somecode它使用RxJava为搜索添加时间限制约束,因此我至少可以最大限度地减少对后端的调用次数。但我面临的问题是,如果我输入“s”,一个请求就会出现,如果我输入“so”,那么另一个请求就会出现(假设我输入有延迟),所以我可能会得到结果由于某种原因,在“s”

android - Retrofit observable 只工作一次

我知道,默认情况下,改造创建的可观察对象是“冷”可观察对象。我对我的服务器端点有这个特定的调用@POST("oauth/token")ObservablesignIn(@Field("username")Stringusername,@Field("password")Stringpassword);当我这样做时:publicclassLoginUseCaseextendsSubscriber{publicvoidlogIn(Stringusername,Stringpassword){Subscriptionsubscription=myApi.signIn(username,pas

android - Realm 和 Retrofit2 : sending auto-managed objects

当使用Realm和Retrofit2将自动管理的RealmObject发送到我们的服务器时,Retrofit2(使用Gson)仅发送RealmObject中的整数。它完全忽略了Strings等字段,并没有把这些放在json中。没有错误记录。但是,如果我断开RealmObject与Realm的连接:realm.copyFromRealm(myRealmObject)然后它会发送所有字段。可能是什么问题呢?有没有合适的解决方案? 最佳答案 开始之前在我在Stackoverflow上的一篇帖子中,我已经解释了同时使用Gson和Realm时

android - 使用 JSend 格式通过 Retrofit 将 JSON 响应转换为 POJO?

我必须使用一个使用JSend的API格式。长话短说,它使用HTTP状态代码来指示如下状态:200是成功406未授权这很好,因为我可以由此确定我的API请求是否成功。但是:由于JSend格式有它自己的东西,它在响应时也有一个小的状态指示器,就像这样:{status:"success",data:{"post":{"id":2,"title":"Anotherblogpost","body":"Morecontent"}}}所以它有一个“状态”字段,它还显示API请求是否成功。问题:改造以解析对POJO的响应,因此它假定响应仅包含模型而没有成功指标,例如:(后模型实例){"id":2,"t