草庐IT

RetroFit

全部标签

java - 如何使用 Retrofit/OkHttp 使并发请求更快?

我需要在Android中使用Retrofit尽快发出50个httpGET请求。我正在使用带有OkHttp的Retrofit。目前,Retrofit与纯JavaThreadPoolExecutor和HttpUrlConnection相比表现不佳:对于所有50个请求,Retrofit大约需要50秒,普通HttpUrlConnection大约需要30秒,如果我为ThreadPoolExecutor设置了池大小20,为Retrofit/OkHttp我设置了okHttpClient.dispatcher().setMaxRequests(20);。如果我查看logcat,无论我在setMaxRe

android - 主线程上的 RxJava onCompleted 和 onTerminate

我在Android上使用RxJava和Retrofit2.0来处理网络请求。当我创建可观察对象时,我将以下内容添加到它:observable=observable.observeOn(AndroidSchedulers.mainThread()).subscribeOn(Schedulers.io()).unsubscribeOn(Schedulers.io())然后如果我添加:observable=observable.doOnTerminate(newAction0(){@Overridepublicvoidcall(){Log.d("OBS","["+Thread.current

android - Okclient中的okclient无法应用于(okhttp3.okhttpclient)

我正在尝试在我的一个项目中使用Retrofit。我遇到了错误(newOkClient(newOkHttpClient()))RestAdapteradapter=newRestAdapter.Builder().setEndpoint(Constants.GET_API_URL_BASE).setLogLevel(RestAdapter.LogLevel.FULL).setClient(newOkClient(newOkHttpClient())).build();apiGet=adapter.create(ApiCalls.class);错误,红色下划线,已打开(newOkHttpC

android - 在 Retrofit 2 上使用 RxJavaCallAdapterFactory 时出现 AbstractMethodError

我收到这个错误:FATALEXCEPTION:mainE/AndroidRuntime:java.lang.AbstractMethodError:abstractmethodnotimplementedatretrofit.RxJavaCallAdapterFactory.get(RxJavaCallAdapterFactory.java)atretrofit.Retrofit.nextCallAdapter(Retrofit.java:189)atretrofit.Retrofit.callAdapter(Retrofit.java:175)atretrofit.MethodHan

java - OkHttp 对请求启用/禁用 gzip 压缩

我正在使用Retrofit来管理我的请求,并希望进行一些测试以检查使用或不使用gzip的请求大小。默认情况下,OkHttp对请求执行gzip压缩,或者它必须使用interceptor实现?我已经添加了@Headers({"Accept-Encoding:gzip,deflate","Content-Encoding:gzip"})或:@Headers({"Content-Type:application/json;charset=utf-8","Accept:application/json"})我的请求并没有看到请求长度有任何变化。 最佳答案

java - OkHttpClient 在将 Retrofit 更新为 Retrofit 2 后损坏

我从retrofit更新到retrofit2后出现此错误。FATALEXCEPTION:OkHttpDispatcherProcess:nz.co.datacom.mars.junction,PID:21616java.lang.NoSuchMethodError:Novirtualmethodlog(Ljava/lang/String;)VinclassLokhttp3/internal/Platform;oritssuperclasses(declarationof'okhttp3.internal.Platform'appearsin/data/app/nz.co.datacom

android - 使用 Retrofit 时手动解析部分响应

我正在使用一个RESTAPI,该API返回一个JSON文档,该文档以如下方式开头,并包含一个“集合”,其中包含带有“ABC”等字符串ID的项目。注意“routes”字段,它包含一系列名为“ABC”、“ABD”、“ABE”等的字段,但是routes在json中并没有表示为数组,所以所有这些{"status":true,"page":1,"per_page":500,"total_count":1234,"total_pages":8,"total_on_page":500,"routes":{"ABC":[{"value":22313,我正在使用Retrofit,问题是路线字段不是数组(

android - 错误 : incompatible types: GsonConverterFactory cannot be converted to Factory

这个问题在这里已经有了答案:retrofitconvertorfactorycannotaccessGsonConverterFactory(5个答案)关闭7年前。我在设置转换器时尝试使用Retrofit2.0.0.beta2像下面的GsonRetrofitretrofit=newRetrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();在这个gradle抛出错误之后GsonConverterFactorycannotbeconvertedtoFacto

Android - Retrofit 2 - 验证器结果

我正在尝试使用Retrofit(2.0.0-beta3),但是当使用Authenticator添加token时,我似乎无法从同步调用中获取数据。我们在后端的登录只显示了很多登录尝试,但我无法从正文中获取数据以实际添加到header中。publicstaticclassTokenAuthenticatorimplementsAuthenticator{@OverridepublicRequestauthenticate(Routeroute,Responseresponse)throwsIOException{//Refreshyouraccess_tokenusingasynchron

android - RX JAVA + Retrofit sdk 使用 Swagger codegen 生成

我想使用swaggercodegen生成sdk,它可以给我生成的带有Observable作为回调的sdk,如下所示:@POST("oauth/token")ObservablegetRepository(@Query("grant_type")StringgrantType); 最佳答案 您可以使用以下命令作为示例生成一个启用了RxJava的JavaRetrofitAPI客户端:java-jarmodules/swagger-codegen-cli/target/swagger-codegen-cli.jargenerate\-lj