草庐IT

RetroFit

全部标签

android - Retrofit 2 使用 HttpLoggingInterceptor.Level.BODY 在日志中打印空响应主体

我使用Retrofit2.0.0。这是构建我的HTTP客户端的代码protectedOkHttpClientgetHttpClient(){OkHttpClient.Builderbuilder=newOkHttpClient.Builder();builder.addInterceptor(chain->{Requestoriginal=chain.request();Request.BuilderrequestBuilder=original.newBuilder();requestBuilder.header("Accept-Language",App.getInstance()

Android Retrofit 2 简单 XML 转换器

我正在使用Retrofit2.1.0和RetrofitSimpleXMLConverter2.1.0。我使用addConverterFactory方法添加了simplexmlconverter来改造实例。XML在下面titleen-ustexttexttexttextFri,17Jun201611:43EDTtexttexttexttexttextThu,16Jun201610:17EDTtexttexttexttextWed,15Jun201610:02EDTtext我的改造api客户端相关代码:RetrofitAPIClientOkHttpClientclient=newOkHtt

android - 使用 Mockito 进行 JVM 单元测试以测试网络请求的 Retrofit2 和 RxJava

AndroidStudio2.3RC1我正在使用MVP架构并希望运行JVM单元测试。在我的模型中,我使用Retrofit2和RxJava从API获取电影。我想测试函数getPopularMovies(...)但是,此函数将调用网络服务器。然而,在测试中我想以某种方式模拟它并测试onSuccess()和onFailure()方法被调用。我的模型类看起来像这个fragment只是为了保持简短:publicclassMovieListModelImpimplementsMovieListModelContract{@OverridepublicvoidgetPopularMovies(Pop

android - Retrofit.Builder() 中的 JacksonConverterFactory

当我将Gson用于RetrofitBuilder时:Retrofitretrofit=newRetrofit.Builder().baseUrl(CustomAPI.BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();如何将JacksonConverterFactory添加到RetrofitBuilder?使用compile'com.squareup.retrofit:retrofit:2.0.0-beta2'compile'com.squareup.retrofit:converter-jackso

android - 如何使用 Retrofit 发布 HTTPS 请求?

我通过这个构建了一个restAdapter:returnnewRestAdapter.Builder().setEndpoint("https://www.xyz.com/").build().create(SafeUserApi.class);然后在SafeUserApi.class(这是一个接口(interface))中我有:publicinterfaceSafeUserApi{@POST("/api/userlogin")voidgetUserLogin(@BodyUserserLoginuserLogin,Callbackcb);}但它不起作用。我错过了什么?我尝试使用Post

java - 改造 "java.net.ProtocolException: Unexpected status line",有人吗?

我的Android应用程序因以下堆栈跟踪而崩溃,但当我从桌面休息客户端尝试它时,它运行良好。有谁知道可能是什么问题?04-2316:00:50.44927917-27983/com.iproperty.android.apps.irealtorD/Ireal_IrealtorClient﹕--->HTTPGEThttp://beta2.irealtor.api.iproperty.com.my/Listing?pageSize=10000&orderby=1&order=-104-2316:00:50.44927917-27983/com.iproperty.android.apps.

Android:没有 "/"的改造URL路径

所以我实际上是在尝试使用TypedByteArray作为主体来执行PUT。我正在与Azure服务器交互,所以第一步是使用我的图像元数据进行POST调用,我得到一个URL(比如URL_PUT)我必须向该URL_PUT发出PUT请求(从第1步开始),因此我的改造单例接口(interface)函数如下所示:publicinterfaceImageInterface{@PUT("/{nothing}")ResponseuploadBlob(@BodyTypedByteArraybyteArray,@Header("Content-Length")StringbyteArrayLength,@P

android - 使用 Retrofit 和 RX-java 处理无网络的正确方法

我想在调用我的rxretrofit服务之前检查手机是否已连接到互联网。如果没有连接,我想返回一个包含错误的假响应。我使用defer()以下面的解决方案结束,但我认为它可以更好,有什么提示吗?privateObservablecheckNetwork(ObservableretrofitService){returnObservable.defer(newFunc0>(){@OverridepublicObservablecall(){if(!isOnline()){returnObservable.just(Response.error(R.string.error_no_networ

android - 改造 2 : responseBodyConverter converts to null object

我正在使用最新的(截至目前为2.0.0-beta4)版本的Retrofit.当从服务器收到200OK代码时,一切正常。但我也想处理不正常的响应,例如代码401。因此,我必须获取错误响应代码才能准确确定要执行的操作并显示适当的数据:@OverridepublicvoidonResponse(Callcall,Responseresponse){if(response!=null&&!response.isSuccess()&&response.errorBody()!=null){ConvertererrorConverter=retrofit.responseBodyConverter

android - Retrofit : server returns both ETag and Cache-Control: max-age=60. request < 60s 是否应该使用缓存?

我正在使用Retrofit,配置为使用带缓存的OkHttp。我正在调用这个api:https://api.github.com/users/bod/repos它返回一个Etag和一个Cache-Control:public,max-age=60,s-maxage=60header。我在不到60秒的时间内发出了两个请求,因此我希望第二个请求完全不执行任何网络并根据Cache-Control指令使用缓存。但这不是我所看到的。我猜这是因为Etag指令优先?这是正确/正常/预期的行为吗? 最佳答案 RFC2068HypertextTrans