草庐IT

RetroFit

全部标签

android - 无法在 Android Retrofit2 converter-simplexml 库中为我的类创建转换器

我使用Retrofit2converter-simplexml库,当我使用converter-gson时代码运行成功,但是当我添加simplexmlConverter时,我得到一个异常:java.lang.IllegalArgumentException:Unabletocreateconverterforjava.util.ListCausedby:java.lang.IllegalArgumentException:CouldnotlocateResponseBodyconverterforjava.util.List.这是我尝试执行复古http请求的地方:privatevoids

android - 将retrofit 2中的公共(public)路径参数替换为okhttp

我有一些具有相同baseUrl的服务URL。对于一些url会有一些常用的参数,例如apiVersion或locale。但它们不必在每个url中,所以我无法将它们添加到baseUrl。.../api/{apiVersion}/{locale}/event/{eventId}.../api/{apiVersion}/{locale}/venues.../api/{apiVersion}/configuration我不想在retrofit界面添加这些参数。在改造1中,我制作了一个拦截器并使用RequestFacade.addPathParam(...,...)为每个url填充这些公共(pub

android - 在使用改造发布多个图像文件方面需要帮助吗?

如何使用改造在同一参数上添加多个图像/文件以及其他文本数据?Singleimageisuploadingperfectlyusingfollowinginterface@Multipart@POST("/users/updateProfile/")publicvoidupdateProfileWithImage(@Part("user_id")TypedStringfirst_name,@Part("image")TypedFileimage,Callbackcallback); 最佳答案 您可以使用带有@PartMap作为参数的@

android - 如何增加 robospice android 中改造请求的超时时间?

我在我的项目中实现了robospice,并对所有api调用使用改造。对于某些请求,我需要增加超时时间,请告诉我该怎么做?实际上我正在使用扩展RetrofitGsonSpiceService的服务。我的服务类代码如下:publicclassMyServiceextendsRetrofitGsonSpiceService{@OverridepublicvoidonCreate(){super.onCreate();addRetrofitInterface(MyInterface.class);}@OverridepublicCacheManagercreateCacheManager(Ap

android - 我们有没有可能在 OkHttp 拦截器中停止请求?

在我们的应用程序中,我们遇到了一种特殊情况-如果我们的App.specialFlag==true,我们需要停止来self们代码的任何请求。我们认为,在这种情况下最好的方法是包含特殊的Interceptor,它将停止我们的任何请求,如下所示:if(App.specialFlag){//Somehowstoprequest}else{returnchain.proceed(chain.request());}此外,我们应该注意,我们使用RxJavaCallAdapterFactory将响应包装到Observable中。但是我们在OkHttp拦截器中没有看到任何停止请求的方法。我们想出了两种

android - RxJavaCallAdapterFactory 无法转换为 Factory

我正在尝试按照本文中的指南使用Retrofit2和RxJavahttps://inthecheesefactory.com/blog/retrofit-2.0/en在“RxJava与CallAdapter的集成”部分"解释了如何使用RxJava进行改造Retrofitretrofit=newRetrofit.Builder().baseUrl("http://api.nuuneoi.com/base/").addConverterFactory(GsonConverterFactory.create()).addCallAdapterFactory(RxJavaCallAdapterF

android - Retrofit 2.0取消一个Call对象

有没有人玩过Retrofit2.0,特别是Call.cancel()方法?什么时候是触发它的最佳时机?我曾尝试在Fragment的onStop()中调用它,但遇到了一些问题,当屏幕显示关闭时调用被取消。我还尝试在Fragment的onDestroy()中调用它,但此方法不会取消在ViewPager中触发的调用(例如在选项卡之间切换)有人有这方面的工作示例吗?我试图在我的Loop存储库中实现这个:https://github.com/lawloretienne/Loop 最佳答案 “正确”位置在很大程度上取决于您的具体用例。正如您所发

android - Retrofit 2 - 当响应状态为 422(不可处理的实体)时,响应主体为空

我正在使用Retrofit在我的网络服务器中发出POST请求。但是,当响应状态为422(无法处理的实体)时,我似乎无法获取响应主体。响应主体始终为null。我想知道我是否做错了什么,或者是否有解决方法。因为我在请求中使用了相同的jsonPostman,它会正常返回正文。这是方法:@Headers("Content-Type:application/vnd.api+json")@POST("my_endpoint")CallpostEntry(@Header("Authorization")Stringauthorization,@BodyJsonObjectjson);正文是一个Jso

android - 在主线程上改造回调

像这样的电话:@GET("/user/{id}/data")voidgetUserData(@Path("id")intid,Callbackcb);回调应该在主线程上执行(如果不使用RxJava)。我的问题是:解析发生在哪里(假设我正在使用XML转换器来处理响应)。这是主线程,还是不同的线程?它取决于转换器的实现吗?如果我必须包含一些(大量)验证规则/业务规则,我是否需要在callable中生成一个新线程?或者在回调方法中完成它是否可以?我正在寻找方法从网络服务中获取我的Activity数据,避免我自己进行线程管理(或使用其他方法,如IntentService等),但也害怕使用RxJ

android - Retrofit with OKHttp 在离线时如何使用缓存数据

我想用OkHttp在没有互联网时使用缓存进行改造。我这样准备OkHttpClient:RestAdapter.Builderbuilder=newRestAdapter.Builder().setRequestInterceptor(newRequestInterceptor(){@Overridepublicvoidintercept(RequestFacaderequest){request.addHeader("Accept","application/json;versions=1");if(MyApplicationUtils.isNetworkAvaliable(conte