草庐IT

Retrofit

全部标签

android - Retrofit 2 - 如何在接收 JSON 响应时显示进度条

我在选项卡式Activity中使用多个fragment来显示json数据。我想在每个fragment收到响应时显示进度条。privatevoidloadJSON(){Retrofitretrofit=newRetrofit.Builder().baseUrl(BASEURL).addConverterFactory(GsonConverterFactory.create()).build();newsAPI=retrofit.create(NewsAPI.class);Callcall=newsAPI.topNews("soure","api-key");call.enqueue(ne

android - Reddit oAuth 2 for Android "userless"app with Retrofit

我正在尝试在基于Android的“无用户”应用程序中实现RedditoAuth2(每个使用Reddit内容的应用程序都必须有这个implemented)并且我正在遵循这些指南。我registeredanapp并获取相应的client_id。我正在关注APIguidelines和thisforRetrofit以便正确编写Android代码。因此,我编写了两种方法来解决这个问题,但似乎都不起作用。相应fragment中的调用对于这两个选项是相同的,如下所示:publicvoidoAuth(){StringbodyString="grant_type="+"https://oauth.red

android - Retrofit2 静态编码表单数据?

我有一个正在处理的新Android项目,Retrofit2对我来说运行良好。但是,在我发送的数据之上,我有一个url需要使用两个字符串之一进行访问。现在看起来像这样:@FormUrlEncoded@POST("token")CallrequestAccess(@Field("grant_type")Stringtype,@Field("code")StringauthCode,@Field("client_id")StringApiKey);授权类型只是两件事之一,我想将它抽象出来,变成静态url,如下所示:@FormUrlEncoded@POST("token")@Field("gr

android - 如何使用 Retrofit 发布复杂的 JSON 参数

我需要做的Post请求应该是这样的{"project":{"name":"newname123","identifier":"id55"},"key":"8f583ad25100575b974062e0cee43e47aa158e4e"}我能够使用Postman中的原始实现将它发送到服务器,但不知道如何使用表单数据发送它这是我的界面@FormUrlEncoded@POST("projects.json")CallCreateProject(@Field(value="project")ProjectToSendproject,@Field("key")Stringkey);无论我尝试使

android - 如何对 retrofit2 回调进行单元测试?

我想做一个单元测试来验证是否调用了function1()或function2()。我以前没有使用过回调,你能告诉我如何做吗?publicvoidsendData(HttpServiceservice,DocumentuserData){Callcall=service.updateDocument(getId(),userData);call.enqueue(newCallback(){@OverridepublicvoidonResponse(Callcall,Responseresponse){function1(response.code());}@Overridepublicv

android - 用于 retrofit 和最新版本 okhttp 的 build.gradle 依赖项

在我们的应用程序中,我们使用retrofit来实现具有以下依赖关系的网络:compile'com.squareup.retrofit2:retrofit:2.3.0'compile'com.squareup.retrofit2:converter-gson:2.3.0'最近我们开始得到这个crash已解决。那么我该如何在我们的应用程序中解决这个问题?我的理解是改造是建立在okHttp库之上的。那么这是否意味着我们将不得不等待包含新okHttp版本的新版本改造,或者我可以手动将新版本的okHttp作为单独的依赖项包含在内,并最终得到:compile'com.squareup.retrof

android - Retrofit + Rxjava 服务器连接失败时调用onError耗时较长

我正在使用Retrofit+Rxjava从服务器获取实体列表,根据我的设计,当任务失败时,首先它会检查Internet连接,然后它会在doOnError方法中检查与服务器的连接可观察。当客户端未连接到Internet时doOnError在合理的时间内被调用并且用户收到错误消息但问题是当Internet连接时我得到错误的端口或域(检查服务器问题错误)需要很长时间(大约1分钟或更长时间)并且真的很烦人。我怎样才能减少这个时间,原因是什么?我如何检查Internet和服务器连接:publicstaticbooleancheckConnection(StringipOrUrl,intport)

android - 链接多个调用 RxJava、Room 和 Retrofit

我将RxJava/Kotlin与Room和Retrofit结合使用。我确定我不是在写东西,因为我刚开始学习RxJava。场景是我打电话检查数据库中是否有收藏夹记录并将它们放入列表中,从API获取数据并将其插入数据库,使用以前的收藏夹列表更新数据库并将所有记录作为一个,现在更新,列表。我在我的fragment中得到了结果,但每次我得到它时,就好像我少了1个最喜欢的项目,直到我没有最喜欢的项目。存储库fungetKafaniFromApi():Observable>{returnapiService.getKafani().toObservable().doOnNext{insertKaf

android - 使用 Retrofit 2 获取 SSLException

我正在创建授权应用程序,我正在使用Retrofit2。当我进行调用时,会转到onFailure方法并获取异常“javax.net.ssl.SSLException:连接被对等方关闭”但问题是,昨天这很管用。今天它给出了异常(exception)。我在网上找到一些SSLException-ConnectionclosedbypeeronAndroid4.xversions,或者这个HowtoaddTLSv1.0andTLSv.1.1withRetrofit,但这对我没有帮助。任何想法如何解决它。在后端启用TLS1.2。publicclassRegistrationFragmentexte

java - 当第一个请求失败并返回 401 Unauthorized 时重做之前的请求

我正在构建一个将从RESTAPI获取数据的Android应用程序。为了发出请求,我正在使用Retrofit连同Otto.对于我的所有请求,我都添加了一个RequestInterceptor,它将为我的所有请求添加一个header(授权)。在RequestInterceptor中,我正在为我当前的access_token调用一个方法,然后我将header填充到请求中。RequestInterceptorrequestInterceptor=newRequestInterceptor(){@Overridepublicvoidintercept(RequestFacaderequest){