草庐IT

Retrofit

全部标签

android - 如何在使用 Retrofit 2 进行单元测试期间创建一个 retrofit.Response 对象

在使用RxJava和Retrofit2时,我正在尝试创建单元测试来覆盖我的应用何时收到特定响应。我遇到的问题是,在Retrofit2中,我看不到在不使用反射的情况下创建retrofit.Response对象的好方法。@TestpublicvoidtestLogin_throwsLoginBadRequestExceptionWhen403Error(){Request.BuilderrequestBuilder=newRequest.Builder();requestBuilder.get();requestBuilder.url("http://localhost");Respons

android - 如何在 Retrofit-2.0+ android 中设置超时

我提到了thislink但我似乎无法为我实现我正在使用compile'com.squareup.retrofit2:retrofit:2.0.2'compile'com.squareup.retrofit2:converter-gson:2.0.2'我正在使用下面的代码,如何为此设置超时!publicclassApiClient{publicstaticfinalStringBASE_URL=Constants.BaseURL;privatestaticRetrofitretrofit=null;publicstaticRetrofitgetClient(){if(retrofit==

android - 使用 Retrofit 从 RetrofitError 对象获取 JSON

我正在使用Retrofit库对我正在使用的服务进行REST调用。如果我对我的服务进行API调用并出现故障,该服务会返回一些JSON以及标准HTTP错误内容。使用失败回调中包含的RetrofitError对象,我能够找到HTTP状态代码和其他一些内容,但是我无法检索服务发回的JSON。例如,假设我在尝试创建用户的地方调用API。如果用户名已经存在,服务将返回400错误代码以及一些JSON,如下所示:{"error":"Usernamealreadyinuse"}因为一个简单的400错误代码不够具体,我确实需要访问返回的JSON。有谁知道我如何获取这些JSON数据?我尝试查看Retrofi

android - 为什么 RxJava 经常与 Retrofit 一起使用?

Retrofit与Rxjava结合使用有什么好处? 最佳答案 问题RetrofitAlreadyinrunonbackgroundthread.ThenwhyneedanotherbackgroundtaskRxJava?我认为最重要的是,避免嵌套回调(callbackhell)。例如)回调hell(改造)publicinterfaceMyService{@GET("users")Call>getUser();@GET("userinfo")CallgetUserInfoById(@Query("id")Integerid);}se

android - Retrofit - @Body 参数不能与表单或多部分编码一起使用

我正在尝试发出一个请求,其中我想包含一个Header、一个form-urlencoded字段和一个json正文。我的Retrofit界面如下@FormUrlEncoded@POST("/api/register")Observableregister(@Header("Authorization")Stringauthorization,@Field("grant_type")StringgrantType,@BodyRegisterBodybody);当我提出这个请求时,我得到了异常@Body参数不能与表单或多部分编码一起使用。我也尝试过使用@Multipart注释:@Multipa

android - 如何使用 Retrofit 从异步回调中返回 String 或 JSONObject?

例如调用api.getUserName(userId,newCallback(){...});原因:retrofit.RetrofitError:retrofit.converter.ConversionException:com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:ExpectedastringbutwasBEGIN_OBJECTatline1column2我想我必须禁用gson解析为POJO,但不知道该怎么做。 最佳答案 我想通了。很尴尬

android - 如何在 Retrofit (Android) 中动态设置标题

我正在使用一个使用授权方案的API,该方案需要设置一个特殊的“X-Authorization”header来对请求进行身份验证。例如,此Retrofit设置非常适合身份验证token为abc123的用户:@Headers("X-Authorization:abc123")@GET("/posts")Observable>get_posts();我缓存了用户的X-Authorizationtoken,所以我可以访问它,但是,我不能将它放在@Headers声明中。@Headers("X-Authorization:"+token)@GET("/posts")Observable>get_p

android - CertPathValidatorException : Trust anchor for certificate path not found - Retrofit Android

我正在创建一个使用https与服务器通信的android应用程序。我正在使用retrofit和OkHttp发出请求。这些适用于标准http请求。以下是我遵循的步骤。第1步:使用命令从服务器获取证书文件echo-n|openssls_client-connectapi.****.tk:443|sed-ne'/-BEGINCERTIFICATE-/,/-ENDCERTIFICATE-/p'>gtux.cert第2步:使用以下命令将证书转换为BKS格式keytool-importcert-v-trustcacerts-file"gtux.cert"-aliasimeto_alias-keys

java - 如何在 RetroFit 中使用 Gson 转换器?

我正在为教育目的制作一个简单的RetroFit应用程序,并使用IntelliJIDEA作为我的IDE。我已经正确导入了Retrofit库(至少我认为我已经导入了),但我无法获得GsonConverter包。我安装了来自google的gson.jar,但在这两个库中都没有一个名为“GsonConverterFactory”的类,这是我解析JSON所必需的。编辑:我在Windows上。 最佳答案 添加compile'com.squareup.retrofit:converter-gson:2.0.0-beta2'给您的build.gra

java - Dagger + retrofit 。在运行时添加身份验证 header

我想知道是否有办法让Dagger知道它应该在新数据可用时重新创建一个对象。我所说的实例是用于改造的请求header。在某些时候(当用户登录时),我得到一个token,我需要将其添加到改造的header中以发出经过身份验证的请求。问题是,我留下了相同的未经身份验证的retrofit版本。这是我的注入(inject)代码:@Provides@SingletonOkHttpClientprovideOkHttpClient(Cachecache){HttpLoggingInterceptorinterceptor=newHttpLoggingInterceptor();interceptor