├── .editorconfig ├── .gitattributes ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── pull_request_template.md ├── renovate.json5 └── workflows │ ├── .java-version │ ├── build.yml │ └── release.yaml ├── .gitignore ├── BUG-BOUNTY.md ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── RELEASING.md ├── build.gradle ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── retrofit-adapters ├── README.md ├── guava │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── adapter │ │ │ └── guava │ │ │ ├── GuavaCallAdapterFactory.java │ │ │ ├── HttpException.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── adapter │ │ └── guava │ │ ├── GuavaCallAdapterFactoryTest.java │ │ ├── ListenableFutureTest.java │ │ └── StringConverterFactory.java ├── java8 │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── adapter │ │ │ └── java8 │ │ │ ├── HttpException.java │ │ │ ├── Java8CallAdapterFactory.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── adapter │ │ └── java8 │ │ ├── CompletableFutureTest.java │ │ ├── Java8CallAdapterFactoryTest.java │ │ └── StringConverterFactory.java ├── rxjava │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── adapter │ │ │ └── rxjava │ │ │ ├── BodyOnSubscribe.java │ │ │ ├── CallArbiter.java │ │ │ ├── CallEnqueueOnSubscribe.java │ │ │ ├── CallExecuteOnSubscribe.java │ │ │ ├── HttpException.java │ │ │ ├── Result.java │ │ │ ├── ResultOnSubscribe.java │ │ │ ├── RxJavaCallAdapter.java │ │ │ ├── RxJavaCallAdapterFactory.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── adapter │ │ └── rxjava │ │ ├── AsyncTest.java │ │ ├── CancelDisposeTest.java │ │ ├── CompletableTest.java │ │ ├── CompletableThrowingSafeSubscriberTest.java │ │ ├── CompletableThrowingTest.java │ │ ├── CompletableWithSchedulerTest.java │ │ ├── ForwardingSubscriber.java │ │ ├── ObservableTest.java │ │ ├── ObservableThrowingSafeSubscriberTest.java │ │ ├── ObservableThrowingTest.java │ │ ├── ObservableWithSchedulerTest.java │ │ ├── RecordingSubscriber.java │ │ ├── ResultTest.java │ │ ├── RxJavaCallAdapterFactoryTest.java │ │ ├── RxJavaPluginsResetRule.java │ │ ├── SingleTest.java │ │ ├── SingleThrowingTest.java │ │ ├── SingleWithSchedulerTest.java │ │ └── StringConverterFactory.java ├── rxjava2 │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── adapter │ │ │ └── rxjava2 │ │ │ ├── BodyObservable.java │ │ │ ├── CallEnqueueObservable.java │ │ │ ├── CallExecuteObservable.java │ │ │ ├── HttpException.java │ │ │ ├── Result.java │ │ │ ├── ResultObservable.java │ │ │ ├── RxJava2CallAdapter.java │ │ │ ├── RxJava2CallAdapterFactory.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── adapter │ │ └── rxjava2 │ │ ├── AsyncTest.java │ │ ├── CancelDisposeTest.java │ │ ├── CancelDisposeTestSync.java │ │ ├── CompletableTest.java │ │ ├── CompletableThrowingTest.java │ │ ├── CompletableWithSchedulerTest.java │ │ ├── FlowableTest.java │ │ ├── FlowableThrowingTest.java │ │ ├── FlowableWithSchedulerTest.java │ │ ├── MaybeTest.java │ │ ├── MaybeThrowingTest.java │ │ ├── MaybeWithSchedulerTest.java │ │ ├── ObservableTest.java │ │ ├── ObservableThrowingTest.java │ │ ├── ObservableWithSchedulerTest.java │ │ ├── RecordingCompletableObserver.java │ │ ├── RecordingMaybeObserver.java │ │ ├── RecordingObserver.java │ │ ├── RecordingSingleObserver.java │ │ ├── RecordingSubscriber.java │ │ ├── ResultTest.java │ │ ├── RxJava2CallAdapterFactoryTest.java │ │ ├── RxJavaPluginsResetRule.java │ │ ├── SingleTest.java │ │ ├── SingleThrowingTest.java │ │ ├── SingleWithSchedulerTest.java │ │ └── StringConverterFactory.java ├── rxjava3 │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── adapter │ │ │ └── rxjava3 │ │ │ ├── BodyObservable.java │ │ │ ├── CallEnqueueObservable.java │ │ │ ├── CallExecuteObservable.java │ │ │ ├── HttpException.java │ │ │ ├── Result.java │ │ │ ├── ResultObservable.java │ │ │ ├── RxJava3CallAdapter.java │ │ │ ├── RxJava3CallAdapterFactory.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── adapter │ │ └── rxjava3 │ │ ├── AsyncTest.java │ │ ├── CancelDisposeTest.java │ │ ├── CancelDisposeTestSync.java │ │ ├── CompletableTest.java │ │ ├── CompletableThrowingTest.java │ │ ├── CompletableWithSchedulerTest.java │ │ ├── FlowableTest.java │ │ ├── FlowableThrowingTest.java │ │ ├── FlowableWithSchedulerTest.java │ │ ├── MaybeTest.java │ │ ├── MaybeThrowingTest.java │ │ ├── MaybeWithSchedulerTest.java │ │ ├── ObservableTest.java │ │ ├── ObservableThrowingTest.java │ │ ├── ObservableWithSchedulerTest.java │ │ ├── RecordingCompletableObserver.java │ │ ├── RecordingMaybeObserver.java │ │ ├── RecordingObserver.java │ │ ├── RecordingSingleObserver.java │ │ ├── RecordingSubscriber.java │ │ ├── ResultTest.java │ │ ├── RxJava3CallAdapterFactoryTest.java │ │ ├── RxJavaPluginsResetRule.java │ │ ├── SingleTest.java │ │ ├── SingleThrowingTest.java │ │ ├── SingleWithSchedulerTest.java │ │ └── StringConverterFactory.java └── scala │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ ├── main │ └── java │ │ └── retrofit2 │ │ └── adapter │ │ └── scala │ │ ├── BodyCallAdapter.java │ │ ├── ResponseCallAdapter.java │ │ ├── ScalaCallAdapterFactory.java │ │ └── package-info.java │ └── test │ └── java │ └── retrofit2 │ └── adapter │ └── scala │ ├── FutureTest.java │ ├── ScalaCallAdapterFactoryTest.java │ └── StringConverterFactory.java ├── retrofit-bom ├── build.gradle └── gradle.properties ├── retrofit-converters ├── README.md ├── gson │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── gson │ │ │ ├── GsonConverterFactory.java │ │ │ ├── GsonRequestBodyConverter.java │ │ │ ├── GsonResponseBodyConverter.java │ │ │ ├── GsonStreamingRequestBody.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── converter │ │ └── gson │ │ └── GsonConverterFactoryTest.java ├── guava │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ ├── java │ │ │ └── retrofit │ │ │ │ └── converter │ │ │ │ └── guava │ │ │ │ ├── GuavaOptionalConverterFactory.java │ │ │ │ ├── OptionalConverter.java │ │ │ │ └── package-info.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── proguard │ │ │ └── retrofit2-guava-converter.pro │ │ └── test │ │ └── java │ │ └── retrofit │ │ └── converter │ │ └── guava │ │ ├── AlwaysNullConverterFactory.java │ │ └── GuavaOptionalConverterFactoryTest.java ├── jackson │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── jackson │ │ │ ├── JacksonConverterFactory.java │ │ │ ├── JacksonRequestBodyConverter.java │ │ │ ├── JacksonResponseBodyConverter.java │ │ │ ├── JacksonStreamingRequestBody.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── converter │ │ └── jackson │ │ ├── JacksonCborConverterFactoryTest.java │ │ └── JacksonConverterFactoryTest.java ├── java8 │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit │ │ │ └── converter │ │ │ └── java8 │ │ │ ├── Java8OptionalConverterFactory.java │ │ │ ├── OptionalConverter.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit │ │ └── converter │ │ └── java8 │ │ ├── AlwaysNullConverterFactory.java │ │ └── Java8OptionalConverterFactoryTest.java ├── jaxb │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── jaxb │ │ │ ├── JaxbConverterFactory.java │ │ │ ├── JaxbRequestConverter.java │ │ │ ├── JaxbResponseConverter.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── converter │ │ └── jaxb │ │ ├── Contact.java │ │ ├── JaxbConverterFactoryTest.java │ │ ├── PhoneNumber.java │ │ └── Type.java ├── jaxb3 │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── jaxb3 │ │ │ ├── JaxbConverterFactory.java │ │ │ ├── JaxbRequestConverter.java │ │ │ ├── JaxbResponseConverter.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── converter │ │ └── jaxb3 │ │ ├── Contact.java │ │ ├── JaxbConverterFactoryTest.java │ │ ├── PhoneNumber.java │ │ └── Type.java ├── kotlinx-serialization │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── kotlinx │ │ │ └── serialization │ │ │ ├── DeserializationStrategyConverter.kt │ │ │ ├── Factory.kt │ │ │ ├── SerializationStrategyConverter.kt │ │ │ └── Serializer.kt │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── converter │ │ └── kotlinx │ │ └── serialization │ │ ├── KotlinSerializationConverterFactoryBytesTest.kt │ │ ├── KotlinSerializationConverterFactoryStringTest.kt │ │ ├── KotlinxSerializationConverterFactoryContextualListTest.kt │ │ └── KotlinxSerializationConverterFactoryContextualTest.kt ├── moshi │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── moshi │ │ │ ├── MoshiConverterFactory.java │ │ │ ├── MoshiRequestBodyConverter.java │ │ │ ├── MoshiResponseBodyConverter.java │ │ │ ├── MoshiStreamingRequestBody.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── converter │ │ └── moshi │ │ └── MoshiConverterFactoryTest.java ├── protobuf │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ ├── java │ │ │ └── retrofit2 │ │ │ │ └── converter │ │ │ │ └── protobuf │ │ │ │ ├── ProtoConverterFactory.java │ │ │ │ ├── ProtoRequestBodyConverter.java │ │ │ │ ├── ProtoResponseBodyConverter.java │ │ │ │ ├── ProtoStreamingRequestBody.java │ │ │ │ └── package-info.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── proguard │ │ │ └── retrofit2-protobuf-converter.pro │ │ └── test │ │ ├── java │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── protobuf │ │ │ ├── FallbackParserFinderTest.java │ │ │ └── ProtoConverterFactoryTest.java │ │ └── proto │ │ └── phone.proto ├── scalars │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── scalars │ │ │ ├── ScalarRequestBodyConverter.java │ │ │ ├── ScalarResponseBodyConverters.java │ │ │ ├── ScalarsConverterFactory.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── converter │ │ └── scalars │ │ ├── ScalarsConverterFactoryTest.java │ │ └── ScalarsConverterPrimitivesFactoryTest.java ├── simplexml │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ │ ├── main │ │ └── java │ │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── simplexml │ │ │ ├── SimpleXmlConverterFactory.java │ │ │ ├── SimpleXmlRequestBodyConverter.java │ │ │ ├── SimpleXmlResponseBodyConverter.java │ │ │ └── package-info.java │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ └── converter │ │ └── simplexml │ │ ├── MyObject.java │ │ └── SimpleXmlConverterFactoryTest.java └── wire │ ├── README.md │ ├── build.gradle │ ├── gradle.properties │ └── src │ ├── main │ ├── java │ │ └── retrofit2 │ │ │ └── converter │ │ │ └── wire │ │ │ ├── WireConverterFactory.java │ │ │ ├── WireRequestBodyConverter.java │ │ │ ├── WireResponseBodyConverter.java │ │ │ ├── WireStreamingRequestBody.java │ │ │ └── package-info.java │ └── resources │ │ └── META-INF │ │ └── proguard │ │ └── retrofit2-wire-converter.pro │ └── test │ └── java │ └── retrofit2 │ └── converter │ └── wire │ ├── CrashingPhone.java │ ├── Phone.java │ └── WireConverterFactoryTest.java ├── retrofit-mock ├── README.md ├── build.gradle ├── gradle.properties └── src │ ├── main │ └── java │ │ └── retrofit2 │ │ └── mock │ │ ├── BehaviorCall.java │ │ ├── BehaviorDelegate.java │ │ ├── Calls.java │ │ ├── KotlinExtensions.kt │ │ ├── MockRetrofit.java │ │ ├── MockRetrofitIOException.java │ │ ├── NetworkBehavior.java │ │ └── package-info.java │ └── test │ └── java │ └── retrofit2 │ └── mock │ ├── BehaviorDelegateKotlinTest.kt │ ├── BehaviorDelegateTest.java │ ├── CallsTest.java │ ├── MockRetrofitTest.java │ └── NetworkBehaviorTest.java ├── retrofit-response-type-keeper ├── README.md ├── build.gradle ├── gradle.properties └── src │ ├── main │ └── kotlin │ │ └── retrofit2 │ │ └── keeper │ │ └── RetrofitResponseTypeKeepProcessor.kt │ └── test │ └── kotlin │ └── retrofit2 │ └── keeper │ └── RetrofitResponseTypeKeepProcessorTest.kt ├── retrofit ├── android-test │ ├── build.gradle │ ├── debug.keystore │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── retrofit2 │ │ │ ├── BasicCallTest.java │ │ │ ├── CompletableFutureAndroidTest.java │ │ │ ├── DefaultMethodsAndroidTest.java │ │ │ ├── OptionalConverterFactoryAndroidTest.java │ │ │ └── UriAndroidTest.java │ │ └── main │ │ └── AndroidManifest.xml ├── build.gradle ├── gradle.properties ├── java-test │ ├── README.md │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ ├── AnnotationArraySubject.java │ │ ├── CallAdapterTest.java │ │ ├── CallTest.java │ │ ├── CompletableFutureCallAdapterFactoryTest.java │ │ ├── CompletableFutureTest.java │ │ ├── DefaultCallAdapterFactoryTest.java │ │ ├── DefaultMethodsTest.java │ │ ├── HttpExceptionTest.java │ │ ├── InvocationTest.java │ │ ├── Java8DefaultStaticMethodsInValidationTest.java │ │ ├── MethodParameterReflectionTest.java │ │ ├── NonFatalError.java │ │ ├── OptionalConverterFactoryTest.java │ │ ├── RequestFactoryBuilderTest.java │ │ ├── RequestFactoryTest.java │ │ ├── ResponseTest.java │ │ └── RetrofitTest.java ├── kotlin-test │ ├── build.gradle │ └── src │ │ └── test │ │ └── java │ │ └── retrofit2 │ │ ├── KotlinExtensionsTest.kt │ │ ├── KotlinRequestFactoryTest.java │ │ ├── KotlinSuspendRawTest.java │ │ ├── KotlinSuspendTest.kt │ │ └── KotlinUnitTest.java ├── robovm-test │ ├── build.gradle │ └── src │ │ └── main │ │ └── java │ │ └── retrofit2 │ │ └── RoboVmPlatformTest.java ├── src │ └── main │ │ ├── java │ │ └── retrofit2 │ │ │ ├── AndroidMainExecutor.java │ │ │ ├── BuiltInConverters.java │ │ │ ├── BuiltInFactories.java │ │ │ ├── Call.java │ │ │ ├── CallAdapter.java │ │ │ ├── Callback.java │ │ │ ├── CompletableFutureCallAdapterFactory.java │ │ │ ├── Converter.java │ │ │ ├── DefaultCallAdapterFactory.java │ │ │ ├── DefaultMethodSupport.java │ │ │ ├── HttpException.java │ │ │ ├── HttpServiceMethod.java │ │ │ ├── Invocation.java │ │ │ ├── KotlinExtensions.kt │ │ │ ├── OkHttpCall.java │ │ │ ├── OptionalConverterFactory.java │ │ │ ├── ParameterHandler.java │ │ │ ├── Platform.java │ │ │ ├── Reflection.java │ │ │ ├── RequestBuilder.java │ │ │ ├── RequestFactory.java │ │ │ ├── Response.java │ │ │ ├── Retrofit.java │ │ │ ├── ServiceMethod.java │ │ │ ├── SkipCallbackExecutor.java │ │ │ ├── SkipCallbackExecutorImpl.java │ │ │ ├── Utils.java │ │ │ ├── http │ │ │ ├── Body.java │ │ │ ├── DELETE.java │ │ │ ├── Field.java │ │ │ ├── FieldMap.java │ │ │ ├── FormUrlEncoded.java │ │ │ ├── GET.java │ │ │ ├── HEAD.java │ │ │ ├── HTTP.java │ │ │ ├── Header.java │ │ │ ├── HeaderMap.java │ │ │ ├── Headers.java │ │ │ ├── Multipart.java │ │ │ ├── OPTIONS.java │ │ │ ├── PATCH.java │ │ │ ├── POST.java │ │ │ ├── PUT.java │ │ │ ├── Part.java │ │ │ ├── PartMap.java │ │ │ ├── Path.java │ │ │ ├── Query.java │ │ │ ├── QueryMap.java │ │ │ ├── QueryName.java │ │ │ ├── Streaming.java │ │ │ ├── Tag.java │ │ │ ├── Url.java │ │ │ └── package-info.java │ │ │ ├── internal │ │ │ └── EverythingIsNonNull.java │ │ │ └── package-info.java │ │ ├── java14 │ │ └── retrofit2 │ │ │ └── DefaultMethodSupport.java │ │ ├── java16 │ │ └── retrofit2 │ │ │ └── DefaultMethodSupport.java │ │ └── resources │ │ └── META-INF │ │ └── proguard │ │ └── retrofit2.pro └── test-helpers │ ├── build.gradle │ └── src │ └── main │ └── java │ └── retrofit2 │ ├── TestingUtils.java │ └── helpers │ ├── DelegatingCallAdapterFactory.java │ ├── ExampleWithoutParameterNames.java │ ├── NonMatchingCallAdapterFactory.java │ ├── NonMatchingConverterFactory.java │ ├── NullObjectConverterFactory.java │ ├── ObjectInstanceConverterFactory.java │ └── ToStringConverterFactory.java ├── samples ├── build.gradle └── src │ └── main │ └── java │ └── com │ └── example │ └── retrofit │ ├── AnnotatedConverters.java │ ├── ChunkingConverter.java │ ├── ConditionalLoggingInterceptor.kt │ ├── Crawler.java │ ├── DeserializeErrorBody.java │ ├── DynamicBaseUrl.java │ ├── ErrorHandlingAdapter.java │ ├── InvocationMetrics.java │ ├── JsonAndXmlConverters.java │ ├── JsonQueryParameters.java │ ├── RxJavaObserveOnMainThread.java │ ├── SimpleMockService.java │ ├── SimpleService.java │ └── package-info.java ├── settings.gradle └── website ├── .env.release ├── .env.snapshot ├── .gitignore ├── README.md ├── astro.config.mjs ├── package-lock.json ├── package.json ├── public ├── 1.x │ ├── converter-jackson │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── retrofit │ │ │ └── converter │ │ │ │ ├── JacksonConverter.html │ │ │ │ ├── class-use │ │ │ │ └── JacksonConverter.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ ├── script.js │ │ ├── stylesheet.css │ │ └── version.txt │ ├── converter-protobuf │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── retrofit │ │ │ └── converter │ │ │ │ ├── ProtoConverter.html │ │ │ │ ├── class-use │ │ │ │ └── ProtoConverter.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ ├── script.js │ │ ├── stylesheet.css │ │ └── version.txt │ ├── converter-simplexml │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── retrofit │ │ │ └── converter │ │ │ │ ├── SimpleXMLConverter.html │ │ │ │ ├── class-use │ │ │ │ └── SimpleXMLConverter.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ ├── script.js │ │ ├── stylesheet.css │ │ └── version.txt │ ├── converter-wire │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── retrofit │ │ │ └── converter │ │ │ │ ├── WireConverter.html │ │ │ │ ├── class-use │ │ │ │ └── WireConverter.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ ├── script.js │ │ ├── stylesheet.css │ │ └── version.txt │ ├── retrofit-mock │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-frame.html │ │ ├── overview-summary.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── retrofit │ │ │ ├── MockHttpException.html │ │ │ ├── MockRestAdapter.ValueChangeListener.html │ │ │ ├── MockRestAdapter.html │ │ │ ├── android │ │ │ │ ├── AndroidMockValuePersistence.html │ │ │ │ ├── class-use │ │ │ │ │ └── AndroidMockValuePersistence.html │ │ │ │ ├── package-frame.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ │ ├── class-use │ │ │ │ ├── MockHttpException.html │ │ │ │ ├── MockRestAdapter.ValueChangeListener.html │ │ │ │ └── MockRestAdapter.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── script.js │ │ ├── serialized-form.html │ │ ├── stylesheet.css │ │ └── version.txt │ └── retrofit │ │ ├── allclasses-frame.html │ │ ├── allclasses-noframe.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── overview-frame.html │ │ ├── overview-summary.html │ │ ├── overview-tree.html │ │ ├── package-list │ │ ├── retrofit │ │ ├── Callback.html │ │ ├── Endpoint.html │ │ ├── Endpoints.html │ │ ├── ErrorHandler.html │ │ ├── Profiler.RequestInformation.html │ │ ├── Profiler.html │ │ ├── RequestInterceptor.RequestFacade.html │ │ ├── RequestInterceptor.html │ │ ├── ResponseCallback.html │ │ ├── RestAdapter.Builder.html │ │ ├── RestAdapter.Log.html │ │ ├── RestAdapter.LogLevel.html │ │ ├── RestAdapter.html │ │ ├── RetrofitError.Kind.html │ │ ├── RetrofitError.html │ │ ├── android │ │ │ ├── AndroidApacheClient.html │ │ │ ├── AndroidLog.html │ │ │ ├── MainThreadExecutor.html │ │ │ ├── class-use │ │ │ │ ├── AndroidApacheClient.html │ │ │ │ ├── AndroidLog.html │ │ │ │ └── MainThreadExecutor.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── appengine │ │ │ ├── UrlFetchClient.html │ │ │ ├── class-use │ │ │ │ └── UrlFetchClient.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── class-use │ │ │ ├── Callback.html │ │ │ ├── Endpoint.html │ │ │ ├── Endpoints.html │ │ │ ├── ErrorHandler.html │ │ │ ├── Profiler.RequestInformation.html │ │ │ ├── Profiler.html │ │ │ ├── RequestInterceptor.RequestFacade.html │ │ │ ├── RequestInterceptor.html │ │ │ ├── ResponseCallback.html │ │ │ ├── RestAdapter.Builder.html │ │ │ ├── RestAdapter.Log.html │ │ │ ├── RestAdapter.LogLevel.html │ │ │ ├── RestAdapter.html │ │ │ ├── RetrofitError.Kind.html │ │ │ └── RetrofitError.html │ │ ├── client │ │ │ ├── ApacheClient.html │ │ │ ├── Client.Provider.html │ │ │ ├── Client.html │ │ │ ├── Header.html │ │ │ ├── OkClient.html │ │ │ ├── Request.html │ │ │ ├── Response.html │ │ │ ├── UrlConnectionClient.html │ │ │ ├── class-use │ │ │ │ ├── ApacheClient.html │ │ │ │ ├── Client.Provider.html │ │ │ │ ├── Client.html │ │ │ │ ├── Header.html │ │ │ │ ├── OkClient.html │ │ │ │ ├── Request.html │ │ │ │ ├── Response.html │ │ │ │ └── UrlConnectionClient.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── converter │ │ │ ├── ConversionException.html │ │ │ ├── Converter.html │ │ │ ├── GsonConverter.html │ │ │ ├── class-use │ │ │ │ ├── ConversionException.html │ │ │ │ ├── Converter.html │ │ │ │ └── GsonConverter.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── http │ │ │ ├── Body.html │ │ │ ├── DELETE.html │ │ │ ├── EncodedPath.html │ │ │ ├── EncodedQuery.html │ │ │ ├── EncodedQueryMap.html │ │ │ ├── Field.html │ │ │ ├── FieldMap.html │ │ │ ├── FormUrlEncoded.html │ │ │ ├── GET.html │ │ │ ├── HEAD.html │ │ │ ├── Header.html │ │ │ ├── Headers.html │ │ │ ├── Multipart.html │ │ │ ├── PATCH.html │ │ │ ├── POST.html │ │ │ ├── PUT.html │ │ │ ├── Part.html │ │ │ ├── PartMap.html │ │ │ ├── Path.html │ │ │ ├── Query.html │ │ │ ├── QueryMap.html │ │ │ ├── RestMethod.html │ │ │ ├── Streaming.html │ │ │ ├── class-use │ │ │ │ ├── Body.html │ │ │ │ ├── DELETE.html │ │ │ │ ├── EncodedPath.html │ │ │ │ ├── EncodedQuery.html │ │ │ │ ├── EncodedQueryMap.html │ │ │ │ ├── Field.html │ │ │ │ ├── FieldMap.html │ │ │ │ ├── FormUrlEncoded.html │ │ │ │ ├── GET.html │ │ │ │ ├── HEAD.html │ │ │ │ ├── Header.html │ │ │ │ ├── Headers.html │ │ │ │ ├── Multipart.html │ │ │ │ ├── PATCH.html │ │ │ │ ├── POST.html │ │ │ │ ├── PUT.html │ │ │ │ ├── Part.html │ │ │ │ ├── PartMap.html │ │ │ │ ├── Path.html │ │ │ │ ├── Query.html │ │ │ │ ├── QueryMap.html │ │ │ │ ├── RestMethod.html │ │ │ │ └── Streaming.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── mime │ │ │ ├── FormUrlEncodedTypedOutput.html │ │ │ ├── MimeUtil.html │ │ │ ├── MultipartTypedOutput.html │ │ │ ├── TypedByteArray.html │ │ │ ├── TypedFile.html │ │ │ ├── TypedInput.html │ │ │ ├── TypedOutput.html │ │ │ ├── TypedString.html │ │ │ ├── class-use │ │ │ │ ├── FormUrlEncodedTypedOutput.html │ │ │ │ ├── MimeUtil.html │ │ │ │ ├── MultipartTypedOutput.html │ │ │ │ ├── TypedByteArray.html │ │ │ │ ├── TypedFile.html │ │ │ │ ├── TypedInput.html │ │ │ │ ├── TypedOutput.html │ │ │ │ └── TypedString.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ ├── package-tree.html │ │ └── package-use.html │ │ ├── script.js │ │ ├── serialized-form.html │ │ ├── stylesheet.css │ │ └── version.txt └── 2.x │ ├── adapter-guava │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── adapter │ │ │ └── guava │ │ │ ├── GuavaCallAdapterFactory.html │ │ │ ├── HttpException.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ ├── serialized-form.html │ └── stylesheet.css │ ├── adapter-java8 │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── adapter │ │ │ └── java8 │ │ │ ├── HttpException.html │ │ │ ├── Java8CallAdapterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ ├── serialized-form.html │ └── stylesheet.css │ ├── adapter-rxjava │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── adapter │ │ │ └── rxjava │ │ │ ├── HttpException.html │ │ │ ├── Result.html │ │ │ ├── RxJavaCallAdapterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ ├── serialized-form.html │ └── stylesheet.css │ ├── adapter-rxjava2 │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── adapter │ │ │ └── rxjava2 │ │ │ ├── HttpException.html │ │ │ ├── Result.html │ │ │ ├── RxJava2CallAdapterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ ├── serialized-form.html │ └── stylesheet.css │ ├── adapter-rxjava3 │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── adapter │ │ │ └── rxjava3 │ │ │ ├── HttpException.html │ │ │ ├── Result.html │ │ │ ├── RxJava3CallAdapterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ ├── serialized-form.html │ └── stylesheet.css │ ├── adapter-scala │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── adapter │ │ │ └── scala │ │ │ ├── ScalaCallAdapterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-gson │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── converter │ │ │ └── gson │ │ │ ├── GsonConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-guava │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit │ │ └── converter │ │ │ └── guava │ │ │ ├── GuavaOptionalConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-jackson │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── converter │ │ │ └── jackson │ │ │ ├── JacksonConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-java8 │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit │ │ └── converter │ │ │ └── java8 │ │ │ ├── Java8OptionalConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-jaxb │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── converter │ │ │ └── jaxb │ │ │ ├── JaxbConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-jaxb3 │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── converter │ │ │ └── jaxb3 │ │ │ ├── JaxbConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-kotlinx-serialization │ ├── images │ │ ├── anchor-copy-button.svg │ │ ├── copy-icon.svg │ │ ├── copy-successful-icon.svg │ │ ├── footer-go-to-link.svg │ │ ├── go-to-top-icon.svg │ │ └── logo-icon.svg │ ├── index.html │ ├── kotlinx-serialization │ │ ├── package-list │ │ └── retrofit2.converter.kotlinx.serialization │ │ │ ├── as-converter-factory.html │ │ │ └── index.html │ ├── navigation.html │ ├── scripts │ │ ├── clipboard.js │ │ ├── main.js │ │ ├── navigation-loader.js │ │ ├── pages.json │ │ ├── platform-content-handler.js │ │ ├── prism.js │ │ ├── sourceset_dependencies.js │ │ └── symbol-parameters-wrapper_deferred.js │ ├── styles │ │ ├── font-jb-sans-auto.css │ │ ├── logo-styles.css │ │ ├── main.css │ │ ├── prism.css │ │ └── style.css │ └── ui-kit │ │ ├── assets │ │ ├── abstract-class-kotlin.svg │ │ ├── abstract-class.svg │ │ ├── annotation-kotlin.svg │ │ ├── annotation.svg │ │ ├── arrow-down.svg │ │ ├── burger.svg │ │ ├── checkbox-off.svg │ │ ├── checkbox-on.svg │ │ ├── class-kotlin.svg │ │ ├── class.svg │ │ ├── cross.svg │ │ ├── enum-kotlin.svg │ │ ├── enum.svg │ │ ├── exception-class.svg │ │ ├── field-value.svg │ │ ├── field-variable.svg │ │ ├── filter.svg │ │ ├── function.svg │ │ ├── homepage.svg │ │ ├── interface-kotlin.svg │ │ ├── interface.svg │ │ ├── object.svg │ │ ├── placeholder.svg │ │ ├── theme-toggle.svg │ │ └── typealias-kotlin.svg │ │ ├── ui-kit.min.css │ │ └── ui-kit.min.js │ ├── converter-moshi │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── converter │ │ │ └── moshi │ │ │ ├── MoshiConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-protobuf │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── converter │ │ │ └── protobuf │ │ │ ├── ProtoConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-scalars │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── converter │ │ │ └── scalars │ │ │ ├── ScalarsConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-simplexml │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── converter │ │ │ └── simplexml │ │ │ ├── SimpleXmlConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── converter-wire │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── converter │ │ │ └── wire │ │ │ ├── WireConverterFactory.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ ├── retrofit-mock │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ │ └── mock │ │ │ ├── BehaviorDelegate.html │ │ │ ├── Calls.html │ │ │ ├── MockRetrofit.Builder.html │ │ │ ├── MockRetrofit.html │ │ │ ├── NetworkBehavior.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ └── package-tree.html │ ├── script.js │ └── stylesheet.css │ └── retrofit │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── overview-frame.html │ ├── overview-summary.html │ ├── overview-tree.html │ ├── package-list │ ├── retrofit2 │ ├── Call.html │ ├── CallAdapter.Factory.html │ ├── CallAdapter.html │ ├── Callback.html │ ├── Converter.Factory.html │ ├── Converter.html │ ├── HttpException.html │ ├── Invocation.html │ ├── OptionalConverterFactory.html │ ├── Response.html │ ├── Retrofit.Builder.html │ ├── Retrofit.html │ ├── SkipCallbackExecutor.html │ ├── http │ │ ├── Body.html │ │ ├── DELETE.html │ │ ├── Field.html │ │ ├── FieldMap.html │ │ ├── FormUrlEncoded.html │ │ ├── GET.html │ │ ├── HEAD.html │ │ ├── HTTP.html │ │ ├── Header.html │ │ ├── HeaderMap.html │ │ ├── Headers.html │ │ ├── Multipart.html │ │ ├── OPTIONS.html │ │ ├── PATCH.html │ │ ├── POST.html │ │ ├── PUT.html │ │ ├── Part.html │ │ ├── PartMap.html │ │ ├── Path.html │ │ ├── Query.html │ │ ├── QueryMap.html │ │ ├── QueryName.html │ │ ├── Streaming.html │ │ ├── Tag.html │ │ ├── Url.html │ │ ├── package-frame.html │ │ ├── package-summary.html │ │ └── package-tree.html │ ├── package-frame.html │ ├── package-summary.html │ └── package-tree.html │ ├── script.js │ ├── serialized-form.html │ └── stylesheet.css ├── src ├── content.config.ts ├── content │ └── docs │ │ ├── configuration.md │ │ ├── contributing.md │ │ ├── declarations.md │ │ ├── download.mdx │ │ └── index.md └── styles │ └── theme.css └── tsconfig.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_size = 2 5 | charset = utf-8 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | 9 | [*.{kt,kts}] 10 | ij_kotlin_allow_trailing_comma = true 11 | ij_kotlin_allow_trailing_comma_on_call_site = true 12 | ij_kotlin_imports_layout = * 13 | ktlint_code_style = intellij_idea 14 | 15 | [*.mjs] 16 | indent_style = tab 17 | 18 | [*.ts] 19 | indent_style = tab 20 | 21 | [*.css] 22 | indent_style = tab 23 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | 3 | *.bat text eol=crlf 4 | *.jar binary 5 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Contributing 2 | ============ 3 | 4 | If you would like to contribute code to Retrofit you can do so through GitHub by 5 | forking the repository and sending a pull request. 6 | 7 | When submitting code, please make every effort to follow existing conventions 8 | and style in order to keep the code as readable as possible. Please also make 9 | sure your code compiles by running `./gradlew build` (or `gradlew.bat build` on Windows). 10 | 11 | Before your code can be accepted into the project you must also sign the 12 | [Individual Contributor License Agreement (CLA)][1]. 13 | 14 | 15 | [1]: https://spreadsheets.google.com/spreadsheet/viewform?formkey=dDViT2xzUHAwRkI3X3k5Z0lQM091OGc6MQ&ndplr=1 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | What kind of issue is this? 2 | 3 | - [ ] Question. This issue tracker is not the place for questions. If you want to ask how to do 4 | something, or to understand why something isn't working the way you expect it to, use Stack 5 | Overflow. https://stackoverflow.com/questions/tagged/retrofit 6 | 7 | - [ ] Bug report. If you’ve found a bug, spend the time to write a failing test. Bugs with tests 8 | get fixed. Here’s an example: https://gist.github.com/swankjesse/6608b4713ad80988cdc9 9 | 10 | - [ ] Feature Request. Start by telling us what problem you’re trying to solve. Often a solution 11 | already exists! Don’t send pull requests to implement new features without first getting our 12 | support. Sometimes we leave features out on purpose to keep the project small. 13 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - [ ] `CHANGELOG.md`'s "Unreleased" section has been updated, if applicable. 4 | -------------------------------------------------------------------------------- /.github/renovate.json5: -------------------------------------------------------------------------------- 1 | { 2 | $schema: 'https://docs.renovatebot.com/renovate-schema.json', 3 | extends: [ 4 | 'config:recommended', 5 | ], 6 | ignorePresets: [ 7 | // Ensure we get the latest version and are not pinned to old versions. 8 | 'workarounds:javaLTSVersions', 9 | ], 10 | customManagers: [ 11 | // Update .java-version file with the latest JDK version. 12 | { 13 | customType: 'regex', 14 | fileMatch: [ 15 | '\\.java-version$', 16 | ], 17 | matchStrings: [ 18 | '(?.*)\\n', 19 | ], 20 | datasourceTemplate: 'java-version', 21 | depNameTemplate: 'java', 22 | // Only write the major version. 23 | extractVersionTemplate: '^(?\\d+)', 24 | }, 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /.github/workflows/.java-version: -------------------------------------------------------------------------------- 1 | 24 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Gradle 2 | .gradle 3 | build 4 | /reports 5 | local.properties 6 | 7 | # Idea 8 | .idea 9 | *.iml 10 | -------------------------------------------------------------------------------- /BUG-BOUNTY.md: -------------------------------------------------------------------------------- 1 | Serious about security 2 | ====================== 3 | 4 | Square recognizes the important contributions the security research community 5 | can make. We therefore encourage reporting security issues with the code 6 | contained in this repository. 7 | 8 | If you believe you have discovered a security vulnerability, please follow the 9 | guidelines at https://bugcrowd.com/squareopensource 10 | 11 | -------------------------------------------------------------------------------- /RELEASING.md: -------------------------------------------------------------------------------- 1 | # Releasing 2 | 3 | 1. Update the `VERSION_NAME` in `gradle.properties` to the release version. 4 | 5 | 2. Update the `CHANGELOG.md`: 6 | 1. Change the `Unreleased` header to the release version. 7 | 2. Add a link URL to ensure the header link works. 8 | 3. Add a new `Unreleased` section to the top. 9 | 10 | 3. Update the `README.md` so the "Download" section reflects the new release version. 11 | 12 | 4. Commit 13 | 14 | ``` 15 | $ git commit -am "Prepare version X.Y.Z" 16 | ``` 17 | 18 | 5. Tag 19 | 20 | ``` 21 | $ git tag -am "Version X.Y.Z" X.Y.Z 22 | ``` 23 | 24 | 6. Update the `VERSION_NAME` in `gradle.properties` to the next "SNAPSHOT" version. 25 | 26 | 7. Commit 27 | 28 | ``` 29 | $ git commit -am "Prepare next development version" 30 | ``` 31 | 32 | 8. Push! 33 | 34 | ``` 35 | $ git push && git push --tags 36 | ``` 37 | 38 | This will trigger a GitHub Action workflow which will create a GitHub release and upload the 39 | release artifacts to Maven Central. 40 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | GROUP=com.squareup.retrofit2 2 | VERSION_NAME=3.1.0-SNAPSHOT 3 | 4 | POM_URL=https://github.com/square/retrofit 5 | POM_SCM_URL=https://github.com/square/retrofit/ 6 | POM_SCM_CONNECTION=scm:git:git://github.com/square/retrofit.git 7 | POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/square/retrofit.git 8 | 9 | POM_LICENCE_NAME=The Apache Software License, Version 2.0 10 | POM_LICENCE_URL=https://www.apache.org/licenses/LICENSE-2.0.txt 11 | POM_LICENCE_DIST=repo 12 | 13 | POM_DEVELOPER_ID=square 14 | POM_DEVELOPER_NAME=Square, Inc. 15 | 16 | # Publishing SHA 256 and 512 hashes of maven-metadata is not supported by Sonatype and Nexus. 17 | # See https://github.com/gradle/gradle/issues/11308 and https://issues.sonatype.org/browse/NEXUS-21802 18 | systemProp.org.gradle.internal.publish.checksums.insecure=true 19 | 20 | android.useAndroidX=true 21 | 22 | SONATYPE_AUTOMATIC_RELEASE=true 23 | SONATYPE_HOST=S01 24 | RELEASE_SIGNING_ENABLED=true 25 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/square/retrofit/0889fa3b2f57dce1a049f16dab33f88bdd0fd838/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /retrofit-adapters/README.md: -------------------------------------------------------------------------------- 1 | Retrofit Adapters 2 | ================= 3 | 4 | Retrofit ships with a default adapter for executing `Call` instances. The child modules contained 5 | herein are additional adapters for other popular execution mechanisms. 6 | 7 | To use, supply an instance of your desired adapter when building your `Retrofit` instance. 8 | 9 | ```java 10 | Retrofit retrofit = new Retrofit.Builder() 11 | .baseUrl("https://api.example.com") 12 | .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) 13 | .build(); 14 | ``` 15 | -------------------------------------------------------------------------------- /retrofit-adapters/guava/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.guava 7 | 8 | compileOnly libs.findBugsAnnotations 9 | 10 | testImplementation libs.junit 11 | testImplementation libs.truth 12 | testImplementation libs.okhttp.mockwebserver 13 | } 14 | 15 | jar { 16 | manifest { 17 | attributes 'Automatic-Module-Name': 'retrofit2.adapter.guava' 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /retrofit-adapters/guava/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=adapter-guava 2 | POM_NAME=Adapter: Guava 3 | POM_DESCRIPTION=A Retrofit CallAdapter for Guava's ListenableFuture. 4 | -------------------------------------------------------------------------------- /retrofit-adapters/guava/src/main/java/retrofit2/adapter/guava/HttpException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.adapter.guava; 17 | 18 | import retrofit2.Response; 19 | 20 | /** @deprecated Use {@link retrofit2.HttpException}. */ 21 | @Deprecated 22 | public final class HttpException extends retrofit2.HttpException { 23 | public HttpException(Response response) { 24 | super(response); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /retrofit-adapters/guava/src/main/java/retrofit2/adapter/guava/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.adapter.guava; 3 | -------------------------------------------------------------------------------- /retrofit-adapters/java8/README.md: -------------------------------------------------------------------------------- 1 | Java 8 Adapter (Deprecated) 2 | =========================== 3 | 4 | A call adapter [Java 8's `CompletableFuture`][1]. 5 | 6 | This adapter is no longer needed. Support for `CompletableFuture` is built-in to Retrofit and now 7 | works without configuration. 8 | 9 | 10 | [1]: http://www.oracle.com/technetwork/java/javase/jdk-8-readme-2095712.html 11 | -------------------------------------------------------------------------------- /retrofit-adapters/java8/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | compileOnly libs.findBugsAnnotations 7 | 8 | testImplementation libs.junit 9 | testImplementation libs.truth 10 | testImplementation libs.guava 11 | testImplementation libs.okhttp.mockwebserver 12 | } 13 | 14 | jar { 15 | manifest { 16 | attributes 'Automatic-Module-Name': 'retrofit2.adapter.java8' 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /retrofit-adapters/java8/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=adapter-java8 2 | POM_NAME=Adapter: Java 8 3 | POM_DESCRIPTION=A Retrofit CallAdapter for Java 8's CompletableFuture. 4 | -------------------------------------------------------------------------------- /retrofit-adapters/java8/src/main/java/retrofit2/adapter/java8/HttpException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.adapter.java8; 17 | 18 | import retrofit2.Response; 19 | 20 | /** @deprecated Use {@link retrofit2.HttpException}. */ 21 | @Deprecated 22 | public final class HttpException extends retrofit2.HttpException { 23 | public HttpException(Response response) { 24 | super(response); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /retrofit-adapters/java8/src/main/java/retrofit2/adapter/java8/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.adapter.java8; 3 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.rxjava 7 | compileOnly libs.findBugsAnnotations 8 | 9 | testImplementation libs.junit 10 | testImplementation libs.truth 11 | testImplementation libs.guava 12 | testImplementation libs.okhttp.mockwebserver 13 | } 14 | 15 | jar { 16 | manifest { 17 | attributes 'Automatic-Module-Name': 'retrofit2.adapter.rxjava' 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=adapter-rxjava 2 | POM_NAME=Adapter: RxJava 3 | POM_DESCRIPTION=A Retrofit CallAdapter for RxJava's stream types. -------------------------------------------------------------------------------- /retrofit-adapters/rxjava/src/main/java/retrofit2/adapter/rxjava/HttpException.java: -------------------------------------------------------------------------------- 1 | package retrofit2.adapter.rxjava; 2 | 3 | import retrofit2.Response; 4 | 5 | /** @deprecated Use {@link retrofit2.HttpException}. */ 6 | @Deprecated 7 | public final class HttpException extends retrofit2.HttpException { 8 | public HttpException(Response response) { 9 | super(response); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava/src/main/java/retrofit2/adapter/rxjava/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.adapter.rxjava; 3 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava/src/test/java/retrofit2/adapter/rxjava/ForwardingSubscriber.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.adapter.rxjava; 17 | 18 | import rx.Subscriber; 19 | 20 | abstract class ForwardingSubscriber extends Subscriber { 21 | private final Subscriber delegate; 22 | 23 | ForwardingSubscriber(Subscriber delegate) { 24 | this.delegate = delegate; 25 | } 26 | 27 | @Override 28 | public void onNext(T value) { 29 | delegate.onNext(value); 30 | } 31 | 32 | @Override 33 | public void onCompleted() { 34 | delegate.onCompleted(); 35 | } 36 | 37 | @Override 38 | public void onError(Throwable throwable) { 39 | delegate.onError(throwable); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava2/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.rxjava2 7 | api libs.reactiveStreams 8 | compileOnly libs.findBugsAnnotations 9 | 10 | testImplementation libs.junit 11 | testImplementation libs.truth 12 | testImplementation libs.guava 13 | testImplementation libs.okhttp.mockwebserver 14 | } 15 | 16 | jar { 17 | manifest { 18 | attributes 'Automatic-Module-Name': 'retrofit2.adapter.rxjava2' 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava2/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=adapter-rxjava2 2 | POM_NAME=Adapter: RxJava 2 3 | POM_DESCRIPTION=A Retrofit CallAdapter for RxJava 2's stream types. 4 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava2/src/main/java/retrofit2/adapter/rxjava2/HttpException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.adapter.rxjava2; 17 | 18 | import retrofit2.Response; 19 | 20 | /** @deprecated Use {@link retrofit2.HttpException}. */ 21 | @Deprecated 22 | public final class HttpException extends retrofit2.HttpException { 23 | public HttpException(Response response) { 24 | super(response); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava2/src/main/java/retrofit2/adapter/rxjava2/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.adapter.rxjava2; 3 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava3/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.rxjava3 7 | api libs.reactiveStreams 8 | compileOnly libs.findBugsAnnotations 9 | 10 | testImplementation libs.junit 11 | testImplementation libs.truth 12 | testImplementation libs.guava 13 | testImplementation libs.okhttp.mockwebserver 14 | } 15 | 16 | jar { 17 | manifest { 18 | attributes 'Automatic-Module-Name': 'retrofit2.adapter.rxjava3' 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava3/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=adapter-rxjava3 2 | POM_NAME=Adapter: RxJava 3 3 | POM_DESCRIPTION=A Retrofit CallAdapter for RxJava 3's stream types. 4 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava3/src/main/java/retrofit2/adapter/rxjava3/HttpException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.adapter.rxjava3; 17 | 18 | import retrofit2.Response; 19 | 20 | /** @deprecated Use {@link retrofit2.HttpException}. */ 21 | @Deprecated 22 | public final class HttpException extends retrofit2.HttpException { 23 | public HttpException(Response response) { 24 | super(response); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /retrofit-adapters/rxjava3/src/main/java/retrofit2/adapter/rxjava3/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.adapter.rxjava3; 3 | -------------------------------------------------------------------------------- /retrofit-adapters/scala/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.scalaLibrary 7 | compileOnly libs.findBugsAnnotations 8 | 9 | testImplementation libs.junit 10 | testImplementation libs.truth 11 | testImplementation libs.guava 12 | testImplementation libs.okhttp.mockwebserver 13 | } 14 | 15 | jar { 16 | manifest { 17 | attributes 'Automatic-Module-Name': 'retrofit2.adapter.scala' 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /retrofit-adapters/scala/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=adapter-scala 2 | POM_NAME=Adapter: Scala 3 | POM_DESCRIPTION=A Retrofit CallAdapter for Scala's Future. 4 | -------------------------------------------------------------------------------- /retrofit-adapters/scala/src/main/java/retrofit2/adapter/scala/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.adapter.scala; 3 | -------------------------------------------------------------------------------- /retrofit-bom/build.gradle: -------------------------------------------------------------------------------- 1 | import com.vanniktech.maven.publish.JavaPlatform 2 | 3 | apply plugin: 'java-platform' 4 | apply plugin: 'com.vanniktech.maven.publish' 5 | 6 | mavenPublishing { 7 | configure(new JavaPlatform()) 8 | } 9 | 10 | dependencies { 11 | constraints { 12 | rootProject.subprojects { subproject -> 13 | subproject.plugins.withId('com.vanniktech.maven.publish') { 14 | // Exclude self project from BOM. 15 | if (subproject != this.project) { 16 | api subproject 17 | } 18 | } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /retrofit-bom/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=retrofit-bom 2 | POM_NAME=Retrofit BOM 3 | POM_DESCRIPTION=A BOM for managing Retrofit dependencies. 4 | -------------------------------------------------------------------------------- /retrofit-converters/README.md: -------------------------------------------------------------------------------- 1 | Retrofit Converters 2 | =================== 3 | 4 | Retrofit ships with support for OkHttp's `RequestBody` and `ResponseBody` types but the library is 5 | content-format agnostic. The child modules contained herein are additional converters for other 6 | popular formats. 7 | 8 | To use, supply an instance of your desired converter when building your `Retrofit` instance. 9 | 10 | ```java 11 | Retrofit retrofit = new Retrofit.Builder() 12 | .baseUrl("https://api.example.com") 13 | .addConverterFactory(GsonConverterFactory.create()) 14 | .build(); 15 | ``` 16 | -------------------------------------------------------------------------------- /retrofit-converters/gson/README.md: -------------------------------------------------------------------------------- 1 | Gson Converter 2 | ============== 3 | 4 | A `Converter` which uses [Gson][1] for serialization to and from JSON. 5 | 6 | A default `Gson` instance will be created or one can be configured and passed to the 7 | `GsonConverterFactory` to further control the serialization. 8 | 9 | 10 | Download 11 | -------- 12 | 13 | Download [the latest JAR][2] or grab via [Maven][3]: 14 | ```xml 15 | 16 | com.squareup.retrofit2 17 | converter-gson 18 | latest.version 19 | 20 | ``` 21 | or [Gradle][3]: 22 | ```groovy 23 | implementation 'com.squareup.retrofit2:converter-gson:latest.version' 24 | ``` 25 | 26 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 27 | 28 | 29 | 30 | [1]: https://github.com/google/gson 31 | [2]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=converter-gson&v=LATEST 32 | [3]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.squareup.retrofit2%22%20a%3A%22converter-gson%22 33 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 34 | -------------------------------------------------------------------------------- /retrofit-converters/gson/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.gson 7 | compileOnly libs.findBugsAnnotations 8 | 9 | testImplementation libs.junit 10 | testImplementation libs.truth 11 | testImplementation libs.okhttp.mockwebserver 12 | testImplementation libs.testParameterInjector 13 | } 14 | 15 | jar { 16 | manifest { 17 | attributes 'Automatic-Module-Name': 'retrofit2.converter.gson' 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /retrofit-converters/gson/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-gson 2 | POM_NAME=Converter: Gson 3 | POM_DESCRIPTION=A Retrofit Converter which uses Gson for serialization. 4 | -------------------------------------------------------------------------------- /retrofit-converters/gson/src/main/java/retrofit2/converter/gson/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.converter.gson; 3 | -------------------------------------------------------------------------------- /retrofit-converters/guava/README.md: -------------------------------------------------------------------------------- 1 | Guava Converter 2 | =============== 3 | 4 | A `Converter` which supports [Guava][1]'s `Optional` by delegating to other converters for `T` 5 | and then wrapping it into `Optional`. 6 | 7 | 8 | Download 9 | -------- 10 | 11 | Download [the latest JAR][2] or grab via [Maven][3]: 12 | ```xml 13 | 14 | com.squareup.retrofit2 15 | converter-guava 16 | latest.version 17 | 18 | ``` 19 | or [Gradle][3]: 20 | ```groovy 21 | implementation 'com.squareup.retrofit2:converter-guava:latest.version' 22 | ``` 23 | 24 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 25 | 26 | 27 | [1]: https://github.com/google/guava 28 | [2]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=converter-guava&v=LATEST 29 | [3]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.squareup.retrofit2%22%20a%3A%22converter-guava%22 30 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 31 | -------------------------------------------------------------------------------- /retrofit-converters/guava/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.guava 7 | compileOnly libs.findBugsAnnotations 8 | 9 | testImplementation libs.findBugsAnnotations 10 | testImplementation libs.junit 11 | testImplementation libs.truth 12 | testImplementation libs.okhttp.mockwebserver 13 | } 14 | 15 | jar { 16 | manifest { 17 | attributes 'Automatic-Module-Name': 'retrofit2.converter.guava' 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /retrofit-converters/guava/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-guava 2 | POM_NAME=Converter: Guava 3 | POM_DESCRIPTION=A Retrofit Converter for Guava's Optional type. -------------------------------------------------------------------------------- /retrofit-converters/guava/src/main/java/retrofit/converter/guava/OptionalConverter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit.converter.guava; 17 | 18 | import com.google.common.base.Optional; 19 | import java.io.IOException; 20 | import okhttp3.ResponseBody; 21 | import retrofit2.Converter; 22 | 23 | final class OptionalConverter implements Converter> { 24 | private final Converter delegate; 25 | 26 | OptionalConverter(Converter delegate) { 27 | this.delegate = delegate; 28 | } 29 | 30 | @Override 31 | public Optional convert(ResponseBody value) throws IOException { 32 | return Optional.fromNullable(delegate.convert(value)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /retrofit-converters/guava/src/main/java/retrofit/converter/guava/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit.converter.guava; 3 | -------------------------------------------------------------------------------- /retrofit-converters/guava/src/main/resources/META-INF/proguard/retrofit2-guava-converter.pro: -------------------------------------------------------------------------------- 1 | # Keep generic signature of Optional (R8 full mode strips signatures from non-kept items). 2 | -keep,allowobfuscation,allowshrinking class com.google.common.base.Optional 3 | -------------------------------------------------------------------------------- /retrofit-converters/guava/src/test/java/retrofit/converter/guava/AlwaysNullConverterFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit.converter.guava; 17 | 18 | import java.lang.annotation.Annotation; 19 | import java.lang.reflect.Type; 20 | import okhttp3.ResponseBody; 21 | import retrofit2.Converter; 22 | import retrofit2.Retrofit; 23 | 24 | final class AlwaysNullConverterFactory extends Converter.Factory { 25 | @Override 26 | public Converter responseBodyConverter( 27 | Type type, Annotation[] annotations, Retrofit retrofit) { 28 | return value -> null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /retrofit-converters/jackson/README.md: -------------------------------------------------------------------------------- 1 | Jackson Converter 2 | ================= 3 | 4 | A `Converter` which uses [Jackson][1] for serialization to and from JSON. 5 | 6 | A default `ObjectMapper` instance will be created or one can be configured and passed to the 7 | `JacksonConverterFactory` construction to further control the serialization. 8 | 9 | 10 | Download 11 | -------- 12 | 13 | Download [the latest JAR][2] or grab via [Maven][3]: 14 | ```xml 15 | 16 | com.squareup.retrofit2 17 | converter-jackson 18 | latest.version 19 | 20 | ``` 21 | or [Gradle][3]: 22 | ```groovy 23 | implementation 'com.squareup.retrofit2:converter-jackson:latest.version' 24 | ``` 25 | 26 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 27 | 28 | 29 | 30 | [1]: https://github.com/FasterXML/jackson 31 | [2]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=converter-jackson&v=LATEST 32 | [3]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.squareup.retrofit2%22%20a%3A%22converter-jackson%22 33 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 34 | 35 | -------------------------------------------------------------------------------- /retrofit-converters/jackson/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.jacksonDatabind 7 | compileOnly libs.findBugsAnnotations 8 | 9 | testImplementation libs.junit 10 | testImplementation libs.truth 11 | testImplementation libs.okhttp.mockwebserver 12 | testImplementation libs.testParameterInjector 13 | testImplementation libs.jacksonDataformatCbor 14 | } 15 | 16 | jar { 17 | manifest { 18 | attributes 'Automatic-Module-Name': 'retrofit2.converter.jackson' 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /retrofit-converters/jackson/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-jackson 2 | POM_NAME=Converter: Jackson 3 | POM_DESCRIPTION=A Retrofit Converter which uses Jackson for serialization. 4 | -------------------------------------------------------------------------------- /retrofit-converters/jackson/src/main/java/retrofit2/converter/jackson/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.converter.jackson; 3 | -------------------------------------------------------------------------------- /retrofit-converters/java8/README.md: -------------------------------------------------------------------------------- 1 | Java 8 Converter (Deprecated) 2 | ============================= 3 | 4 | A `Converter` which supports Java 8's `Optional` by delegating to other converters for `T` 5 | and then wrapping it into `Optional`. 6 | 7 | This converter is no longer needed. Support for `Optional` is built-in to Retrofit and now works 8 | without configuration. 9 | -------------------------------------------------------------------------------- /retrofit-converters/java8/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | compileOnly libs.findBugsAnnotations 7 | 8 | testImplementation libs.junit 9 | testImplementation libs.truth 10 | testImplementation libs.okhttp.mockwebserver 11 | testImplementation libs.findBugsAnnotations 12 | } 13 | 14 | jar { 15 | manifest { 16 | attributes 'Automatic-Module-Name': 'retrofit2.converter.java8' 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /retrofit-converters/java8/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-java8 2 | POM_NAME=Converter: Java 8 3 | POM_DESCRIPTION=A Retrofit Converter for Java 8's Optional type. 4 | -------------------------------------------------------------------------------- /retrofit-converters/java8/src/main/java/retrofit/converter/java8/OptionalConverter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit.converter.java8; 17 | 18 | import java.io.IOException; 19 | import java.util.Optional; 20 | import okhttp3.ResponseBody; 21 | import retrofit2.Converter; 22 | 23 | final class OptionalConverter implements Converter> { 24 | private final Converter delegate; 25 | 26 | OptionalConverter(Converter delegate) { 27 | this.delegate = delegate; 28 | } 29 | 30 | @Override 31 | public Optional convert(ResponseBody value) throws IOException { 32 | return Optional.ofNullable(delegate.convert(value)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /retrofit-converters/java8/src/main/java/retrofit/converter/java8/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit.converter.java8; 3 | -------------------------------------------------------------------------------- /retrofit-converters/java8/src/test/java/retrofit/converter/java8/AlwaysNullConverterFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit.converter.java8; 17 | 18 | import java.lang.annotation.Annotation; 19 | import java.lang.reflect.Type; 20 | import okhttp3.ResponseBody; 21 | import retrofit2.Converter; 22 | import retrofit2.Retrofit; 23 | 24 | final class AlwaysNullConverterFactory extends Converter.Factory { 25 | @Override 26 | public Converter responseBodyConverter( 27 | Type type, Annotation[] annotations, Retrofit retrofit) { 28 | return value -> null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb/README.md: -------------------------------------------------------------------------------- 1 | JAXB Converter 2 | ============== 3 | 4 | A `Converter` which uses [JAXB][1] for serialization to and from XML. 5 | 6 | A default `JAXBContext` instance will be created or one can be configured and passed 7 | to `JaxbConverterFactory.create()` to further control the serialization. 8 | 9 | **Note that JAXB does not work on Android.** 10 | 11 | Download 12 | -------- 13 | 14 | Download [the latest JAR][2] or grab via [Maven][3]: 15 | ```xml 16 | 17 | com.squareup.retrofit2 18 | converter-jaxb 19 | latest.version 20 | 21 | ``` 22 | or [Gradle][3]: 23 | ```groovy 24 | implementation 'com.squareup.retrofit2:converter-jaxb:latest.version' 25 | ``` 26 | 27 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 28 | 29 | 30 | 31 | [1]: https://github.com/eclipse-ee4j/jaxb-ri 32 | [2]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=converter-jaxb&v=LATEST 33 | [3]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.squareup.retrofit2%22%20a%3A%22converter-jaxb%22 34 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 35 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.jaxbApi 7 | compileOnly libs.findBugsAnnotations 8 | 9 | testImplementation libs.jaxbImpl 10 | testImplementation libs.junit 11 | testImplementation libs.truth 12 | testImplementation libs.okhttp.mockwebserver 13 | testImplementation libs.findBugsAnnotations 14 | } 15 | 16 | jar { 17 | manifest { 18 | attributes 'Automatic-Module-Name': 'retrofit2.converter.jaxb' 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-jaxb 2 | POM_NAME=Converter: JAXB 3 | POM_DESCRIPTION=A Retrofit Converter which uses JAXB for serialization. 4 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb/src/main/java/retrofit2/converter/jaxb/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.converter.jaxb; 3 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb/src/test/java/retrofit2/converter/jaxb/Type.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.converter.jaxb; 17 | 18 | enum Type { 19 | OTHER, 20 | MOBILE 21 | } 22 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb3/README.md: -------------------------------------------------------------------------------- 1 | JAXB Converter 2 | ============== 3 | 4 | A `Converter` which uses [JAXB][1] 3.x (`jakarta.xml.bind` package) for serialization to and from XML. 5 | 6 | A default `JAXBContext` instance will be created or one can be configured and passed 7 | to `JaxbConverterFactory.create()` to further control the serialization. 8 | 9 | **Note that JAXB does not work on Android.** 10 | 11 | Download 12 | -------- 13 | 14 | Download [the latest JAR][2] or grab via [Maven][3]: 15 | ```xml 16 | 17 | com.squareup.retrofit2 18 | converter-jaxb3 19 | latest.version 20 | 21 | ``` 22 | or [Gradle][3]: 23 | ```groovy 24 | implementation 'com.squareup.retrofit2:converter-jaxb3:latest.version' 25 | ``` 26 | 27 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 28 | 29 | 30 | 31 | [1]: https://github.com/eclipse-ee4j/jaxb-ri 32 | [2]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=converter-jaxb3&v=LATEST 33 | [3]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.squareup.retrofit2%22%20a%3A%22converter-jaxb%322 34 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 35 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb3/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.jaxb3Api 7 | compileOnly libs.findBugsAnnotations 8 | 9 | testImplementation libs.jaxb3Impl 10 | testImplementation libs.junit 11 | testImplementation libs.truth 12 | testImplementation libs.okhttp.mockwebserver 13 | testImplementation libs.findBugsAnnotations 14 | } 15 | 16 | jar { 17 | manifest { 18 | attributes 'Automatic-Module-Name': 'retrofit2.converter.jaxb3' 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb3/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-jaxb3 2 | POM_NAME=Converter: JAXB3 3 | POM_DESCRIPTION=A Retrofit Converter which uses JAXB 3 for serialization. 4 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb3/src/main/java/retrofit2/converter/jaxb3/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.converter.jaxb3; 3 | -------------------------------------------------------------------------------- /retrofit-converters/jaxb3/src/test/java/retrofit2/converter/jaxb3/Type.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.converter.jaxb3; 17 | 18 | enum Type { 19 | OTHER, 20 | MOBILE 21 | } 22 | -------------------------------------------------------------------------------- /retrofit-converters/kotlinx-serialization/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'org.jetbrains.kotlin.jvm' 2 | apply plugin: 'org.jetbrains.kotlin.plugin.serialization' 3 | apply plugin: 'com.vanniktech.maven.publish' 4 | apply plugin: 'org.jetbrains.dokka' 5 | 6 | dependencies { 7 | api projects.retrofit 8 | api libs.kotlinx.serialization.core 9 | 10 | testImplementation libs.junit 11 | testImplementation libs.okhttp.mockwebserver 12 | testImplementation libs.kotlinx.serialization.proto 13 | testImplementation libs.kotlinx.serialization.json 14 | } 15 | -------------------------------------------------------------------------------- /retrofit-converters/kotlinx-serialization/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-kotlinx-serialization 2 | POM_NAME=Converter: kotlinx.serialization 3 | POM_DESCRIPTION=A Retrofit Converter which uses kotlinx.serialization for serialization. 4 | -------------------------------------------------------------------------------- /retrofit-converters/kotlinx-serialization/src/main/java/retrofit2/converter/kotlinx/serialization/DeserializationStrategyConverter.kt: -------------------------------------------------------------------------------- 1 | package retrofit2.converter.kotlinx.serialization 2 | 3 | import kotlinx.serialization.DeserializationStrategy 4 | import okhttp3.ResponseBody 5 | import retrofit2.Converter 6 | 7 | internal class DeserializationStrategyConverter( 8 | private val loader: DeserializationStrategy, 9 | private val serializer: Serializer 10 | ) : Converter { 11 | override fun convert(value: ResponseBody) = serializer.fromResponseBody(loader, value) 12 | } 13 | -------------------------------------------------------------------------------- /retrofit-converters/kotlinx-serialization/src/main/java/retrofit2/converter/kotlinx/serialization/SerializationStrategyConverter.kt: -------------------------------------------------------------------------------- 1 | package retrofit2.converter.kotlinx.serialization 2 | 3 | import kotlinx.serialization.SerializationStrategy 4 | import okhttp3.MediaType 5 | import okhttp3.RequestBody 6 | import retrofit2.Converter 7 | 8 | internal class SerializationStrategyConverter( 9 | private val contentType: MediaType, 10 | private val saver: SerializationStrategy, 11 | private val serializer: Serializer 12 | ) : Converter { 13 | override fun convert(value: T) = serializer.toRequestBody(contentType, saver, value) 14 | } 15 | -------------------------------------------------------------------------------- /retrofit-converters/moshi/README.md: -------------------------------------------------------------------------------- 1 | Moshi Converter 2 | =============== 3 | 4 | A `Converter` which uses [Moshi][1] for serialization to and from JSON. 5 | 6 | A default `Moshi` instance will be created or one can be configured and passed to 7 | `MoshiConverterFactory.create()` to further control the serialization. 8 | 9 | 10 | Download 11 | -------- 12 | 13 | Download [the latest JAR][2] or grab via [Maven][3]: 14 | ```xml 15 | 16 | com.squareup.retrofit2 17 | converter-moshi 18 | latest.version 19 | 20 | ``` 21 | or [Gradle][3]: 22 | ```groovy 23 | implementation 'com.squareup.retrofit2:converter-moshi:latest.version' 24 | ``` 25 | 26 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 27 | 28 | 29 | 30 | [1]: https://github.com/square/moshi 31 | [2]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=converter-moshi&v=LATEST 32 | [3]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.squareup.retrofit2%22%20a%3A%22converter-moshi%22 33 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 34 | -------------------------------------------------------------------------------- /retrofit-converters/moshi/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.moshi 7 | compileOnly libs.findBugsAnnotations 8 | 9 | testImplementation libs.junit 10 | testImplementation libs.truth 11 | testImplementation libs.okhttp.mockwebserver 12 | testImplementation libs.testParameterInjector 13 | } 14 | 15 | jar { 16 | manifest { 17 | attributes 'Automatic-Module-Name': 'retrofit2.converter.moshi' 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /retrofit-converters/moshi/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-moshi 2 | POM_NAME=Converter: Moshi 3 | POM_DESCRIPTION=A Retrofit Converter which uses Moshi for serialization. 4 | -------------------------------------------------------------------------------- /retrofit-converters/moshi/src/main/java/retrofit2/converter/moshi/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.converter.moshi; 3 | -------------------------------------------------------------------------------- /retrofit-converters/protobuf/README.md: -------------------------------------------------------------------------------- 1 | Google Protocol Buffer Converter 2 | ================================ 3 | 4 | A `Converter` which uses [Protocol Buffer][1] binary serialization. 5 | 6 | 7 | Download 8 | -------- 9 | 10 | Download [the latest JAR][2] or grab via [Maven][3]: 11 | ```xml 12 | 13 | com.squareup.retrofit2 14 | converter-protobuf 15 | latest.version 16 | 17 | ``` 18 | or [Gradle][3]: 19 | ```groovy 20 | implementation 'com.squareup.retrofit2:converter-protobuf:latest.version' 21 | ``` 22 | 23 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 24 | 25 | 26 | 27 | [1]: https://developers.google.com/protocol-buffers/ 28 | [2]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=converter-protobuf&v=LATEST 29 | [3]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.squareup.retrofit2%22%20a%3A%22converter-protobuf%22 30 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 31 | -------------------------------------------------------------------------------- /retrofit-converters/protobuf/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.google.protobuf' 3 | apply plugin: 'com.vanniktech.maven.publish' 4 | 5 | dependencies { 6 | api projects.retrofit 7 | api libs.protobuf 8 | compileOnly libs.findBugsAnnotations 9 | 10 | testImplementation libs.junit 11 | testImplementation libs.truth 12 | testImplementation libs.okhttp.mockwebserver 13 | testImplementation libs.testParameterInjector 14 | } 15 | 16 | jar { 17 | manifest { 18 | attributes 'Automatic-Module-Name': 'retrofit2.converter.protobuf' 19 | } 20 | } 21 | 22 | protobuf { 23 | protoc { 24 | artifact = libs.protoc.get() 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /retrofit-converters/protobuf/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-protobuf 2 | POM_NAME=Converter: Protocol Buffers 3 | POM_DESCRIPTION=A Retrofit Converter which uses Protocol Buffers for serialization. 4 | -------------------------------------------------------------------------------- /retrofit-converters/protobuf/src/main/java/retrofit2/converter/protobuf/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.converter.protobuf; 3 | -------------------------------------------------------------------------------- /retrofit-converters/protobuf/src/main/resources/META-INF/proguard/retrofit2-protobuf-converter.pro: -------------------------------------------------------------------------------- 1 | # Parser looked up reflectively. 2 | -keepclassmembers class * implements com.google.protobuf.MessageLite { 3 | public static com.google.protobuf.Parser parser(); 4 | 5 | # Fallback for v2.x. 6 | public static com.google.protobuf.Parser PARSER; 7 | } 8 | -------------------------------------------------------------------------------- /retrofit-converters/protobuf/src/test/proto/phone.proto: -------------------------------------------------------------------------------- 1 | package retrofit2.converter.protobuf; 2 | 3 | option java_package = "retrofit2.converter.protobuf"; 4 | option java_outer_classname = "PhoneProtos"; 5 | 6 | message Phone { 7 | optional string number = 1; 8 | 9 | extensions 2; 10 | } 11 | 12 | extend Phone { 13 | optional bool voicemail = 2; 14 | } 15 | -------------------------------------------------------------------------------- /retrofit-converters/scalars/README.md: -------------------------------------------------------------------------------- 1 | Java Scalars Converter 2 | ====================== 3 | 4 | A `Converter` which supports converting strings and both primitives and their boxed types to 5 | `text/plain` bodies. 6 | 7 | 8 | Download 9 | -------- 10 | 11 | Download [the latest JAR][1] or grab via [Maven][2]: 12 | ```xml 13 | 14 | com.squareup.retrofit2 15 | converter-scalars 16 | latest.version 17 | 18 | ``` 19 | or [Gradle][2]: 20 | ```groovy 21 | implementation 'com.squareup.retrofit2:converter-scalars:latest.version' 22 | ``` 23 | 24 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 25 | 26 | 27 | 28 | [1]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=converter-scalars&v=LATEST 29 | [2]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.squareup.retrofit2%22%20a%3A%22converter-scalars%22 30 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 31 | -------------------------------------------------------------------------------- /retrofit-converters/scalars/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | compileOnly libs.findBugsAnnotations 7 | 8 | testImplementation libs.junit 9 | testImplementation libs.truth 10 | testImplementation libs.okhttp.mockwebserver 11 | } 12 | 13 | jar { 14 | manifest { 15 | attributes 'Automatic-Module-Name': 'retrofit2.converter.scalars' 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /retrofit-converters/scalars/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-scalars 2 | POM_NAME=Converter: Scalars 3 | POM_DESCRIPTION=A Retrofit Converter for Java's scalar value types. 4 | -------------------------------------------------------------------------------- /retrofit-converters/scalars/src/main/java/retrofit2/converter/scalars/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.converter.scalars; 3 | -------------------------------------------------------------------------------- /retrofit-converters/simplexml/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api libs.simpleXml 7 | compileOnly libs.findBugsAnnotations 8 | 9 | testImplementation libs.junit 10 | testImplementation libs.truth 11 | testImplementation libs.okhttp.mockwebserver 12 | } 13 | 14 | jar { 15 | manifest { 16 | attributes 'Automatic-Module-Name': 'retrofit2.converter.simplexml' 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /retrofit-converters/simplexml/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-simplexml 2 | POM_NAME=Converter: SimpleXML 3 | POM_DESCRIPTION=A Retrofit Converter which uses Simple XML for serialization. 4 | -------------------------------------------------------------------------------- /retrofit-converters/simplexml/src/main/java/retrofit2/converter/simplexml/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.converter.simplexml; 3 | -------------------------------------------------------------------------------- /retrofit-converters/wire/README.md: -------------------------------------------------------------------------------- 1 | Wire Converter 2 | ============== 3 | 4 | A `Converter` which uses [Wire][1] for protocol buffer-compatible serialization. 5 | 6 | 7 | Download 8 | -------- 9 | 10 | Download [the latest JAR][2] or grab via [Maven][3]: 11 | ```xml 12 | 13 | com.squareup.retrofit2 14 | converter-wire 15 | latest.version 16 | 17 | ``` 18 | or [Gradle][3]: 19 | ```groovy 20 | implementation 'com.squareup.retrofit2:converter-wire:latest.version' 21 | ``` 22 | 23 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 24 | 25 | 26 | 27 | [1]: https://github.com/square/wire 28 | [2]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=converter-wire&v=LATEST 29 | [3]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.squareup.retrofit2%22%20a%3A%22converter-wire%22 30 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 31 | -------------------------------------------------------------------------------- /retrofit-converters/wire/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'com.vanniktech.maven.publish' 3 | 4 | dependencies { 5 | api projects.retrofit 6 | api(libs.wireRuntime) { 7 | // Make sure OkHttp's transitive version wins (itself transitive from Retrofit). 8 | exclude group: 'com.squareup.okio', module: 'okio' 9 | } 10 | compileOnly libs.findBugsAnnotations 11 | 12 | testImplementation libs.junit 13 | testImplementation libs.truth 14 | testImplementation libs.okhttp.mockwebserver 15 | testImplementation libs.testParameterInjector 16 | } 17 | 18 | jar { 19 | manifest { 20 | attributes 'Automatic-Module-Name': 'retrofit2.converter.wire' 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /retrofit-converters/wire/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=converter-wire 2 | POM_NAME=Converter: Wire 3 | POM_DESCRIPTION=A Retrofit Converter which uses Wire for serialization. 4 | -------------------------------------------------------------------------------- /retrofit-converters/wire/src/main/java/retrofit2/converter/wire/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.converter.wire; 3 | -------------------------------------------------------------------------------- /retrofit-converters/wire/src/main/resources/META-INF/proguard/retrofit2-wire-converter.pro: -------------------------------------------------------------------------------- 1 | # ADAPTER field is looked up reflectively. 2 | -keepclassmembers class * extends com.squareup.wire.Message { 3 | public static com.squareup.wire.ProtoAdapter ADAPTER; 4 | } 5 | -------------------------------------------------------------------------------- /retrofit-mock/README.md: -------------------------------------------------------------------------------- 1 | Mock Web Server 2 | ============== 3 | 4 | A mock web server for mocking HTTP responses from a server, and simulating network behaviour. 5 | 6 | Download 7 | -------- 8 | 9 | Download [the latest JAR][1] or grab via [Maven][2]: 10 | ```xml 11 | 12 | com.squareup.retrofit2 13 | retrofit-mock 14 | see.latest.version 15 | 16 | ``` 17 | or [Gradle][1]: 18 | ```groovy 19 | implementation 'com.squareup.retrofit2:retrofit-mock:see.latest.version' 20 | ``` 21 | 22 | Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap]. 23 | 24 | [1]: https://search.maven.org/remote_content?g=com.squareup.retrofit2&a=retrofit-mock&v=LATEST 25 | [2]: http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22retrofit-mock%22 26 | [snap]: https://s01.oss.sonatype.org/content/repositories/snapshots/ 27 | -------------------------------------------------------------------------------- /retrofit-mock/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | apply plugin: 'org.jetbrains.kotlin.jvm' 3 | apply plugin: 'com.vanniktech.maven.publish' 4 | 5 | dependencies { 6 | api projects.retrofit 7 | compileOnly libs.kotlin.stdLib 8 | compileOnly libs.findBugsAnnotations 9 | 10 | testImplementation libs.junit 11 | testImplementation libs.truth 12 | testImplementation libs.kotlin.stdLib 13 | testImplementation libs.kotlinx.coroutines 14 | } 15 | 16 | jar { 17 | manifest { 18 | attributes 'Automatic-Module-Name': 'retrofit2.mock' 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /retrofit-mock/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=retrofit-mock 2 | POM_NAME=Retrofit Mock Adapter 3 | POM_DESCRIPTION=An add-on to Retrofit for implementing fake services. 4 | -------------------------------------------------------------------------------- /retrofit-mock/src/main/java/retrofit2/mock/KotlinExtensions.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.mock 17 | 18 | inline fun MockRetrofit.create(): BehaviorDelegate = create(T::class.java) 19 | -------------------------------------------------------------------------------- /retrofit-mock/src/main/java/retrofit2/mock/MockRetrofitIOException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2017 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.mock; 17 | 18 | import java.io.IOException; 19 | 20 | final class MockRetrofitIOException extends IOException { 21 | MockRetrofitIOException() { 22 | super("Failure triggered by MockRetrofit's NetworkBehavior"); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /retrofit-mock/src/main/java/retrofit2/mock/package-info.java: -------------------------------------------------------------------------------- 1 | @retrofit2.internal.EverythingIsNonNull 2 | package retrofit2.mock; 3 | -------------------------------------------------------------------------------- /retrofit-response-type-keeper/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'org.jetbrains.kotlin.jvm' 2 | apply plugin: 'org.jetbrains.kotlin.kapt' 3 | apply plugin: 'com.vanniktech.maven.publish' 4 | 5 | dependencies { 6 | compileOnly libs.autoService.annotations 7 | compileOnly libs.incap.runtime 8 | kapt libs.autoService.compiler 9 | kapt libs.incap.processor 10 | 11 | testImplementation libs.junit 12 | testImplementation libs.compileTesting 13 | testImplementation libs.truth 14 | testImplementation projects.retrofit 15 | } 16 | -------------------------------------------------------------------------------- /retrofit-response-type-keeper/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=response-type-keeper 2 | POM_NAME=Response Type Keeper 3 | POM_DESCRIPTION=Annotation processor to generate R8 keep rules for types mentioned in generics. 4 | -------------------------------------------------------------------------------- /retrofit/android-test/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/square/retrofit/0889fa3b2f57dce1a049f16dab33f88bdd0fd838/retrofit/android-test/debug.keystore -------------------------------------------------------------------------------- /retrofit/android-test/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /retrofit/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=retrofit 2 | POM_NAME=Retrofit 3 | POM_DESCRIPTION=A type-safe HTTP client for Android and Java. 4 | -------------------------------------------------------------------------------- /retrofit/java-test/README.md: -------------------------------------------------------------------------------- 1 | # Retrofit Java Tests 2 | 3 | These are in a separate module for two reasons: 4 | 5 | - It ensures optional dependencies (Kotlin stuff) are completely absent. 6 | - It uses the multi-release jar on the classpath rather than only the classes folder. 7 | -------------------------------------------------------------------------------- /retrofit/java-test/src/test/java/retrofit2/NonFatalError.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2; 17 | 18 | final class NonFatalError extends Error { 19 | NonFatalError(String message) { 20 | super(message); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /retrofit/kotlin-test/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'org.jetbrains.kotlin.jvm' 2 | 3 | dependencies { 4 | testImplementation projects.retrofit 5 | testImplementation projects.retrofit.testHelpers 6 | testImplementation libs.junit 7 | testImplementation libs.truth 8 | testImplementation libs.okhttp.mockwebserver 9 | testImplementation libs.kotlinx.coroutines 10 | } 11 | -------------------------------------------------------------------------------- /retrofit/kotlin-test/src/test/java/retrofit2/KotlinExtensionsTest.kt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2 17 | 18 | import okhttp3.mockwebserver.MockWebServer 19 | import org.junit.Assert.assertNotNull 20 | import org.junit.Rule 21 | import org.junit.Test 22 | 23 | class KotlinExtensionsTest { 24 | @get:Rule val server = MockWebServer() 25 | 26 | interface Empty 27 | 28 | @Test fun reifiedCreate() { 29 | val retrofit = Retrofit.Builder() 30 | .baseUrl(server.url("/")) 31 | .build() 32 | 33 | assertNotNull(retrofit.create()) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /retrofit/kotlin-test/src/test/java/retrofit2/KotlinRequestFactoryTest.java: -------------------------------------------------------------------------------- 1 | package retrofit2; 2 | 3 | import kotlin.Unit; 4 | import okhttp3.Request; 5 | import org.junit.Test; 6 | import retrofit2.http.HEAD; 7 | 8 | import static com.google.common.truth.Truth.assertThat; 9 | import static retrofit2.TestingUtils.buildRequest; 10 | 11 | public final class KotlinRequestFactoryTest { 12 | @Test 13 | public void headUnit() { 14 | class Example { 15 | @HEAD("/foo/bar/") 16 | Call method() { 17 | return null; 18 | } 19 | } 20 | 21 | Request request = buildRequest(Example.class); 22 | assertThat(request.method()).isEqualTo("HEAD"); 23 | assertThat(request.headers().size()).isEqualTo(0); 24 | assertThat(request.url().toString()).isEqualTo("http://example.com/foo/bar/"); 25 | assertThat(request.body()).isNull(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /retrofit/robovm-test/build.gradle: -------------------------------------------------------------------------------- 1 | // Normally we want all buildscript classpath dependencies to be at the root so that they 2 | // participate in a single round of dependency resolution. However, the RoboVM plugin 3 | // bundles outdated dependencies like BouncyCastle that are essential to other plugins (namely, AGP) 4 | // without shading them into a new package. Moving it to this project works around this problem. 5 | buildscript { 6 | dependencies { 7 | classpath libs.robovmPlugin 8 | } 9 | repositories { 10 | mavenCentral() 11 | } 12 | } 13 | 14 | apply plugin: 'java' 15 | apply plugin: 'robovm' 16 | 17 | ext.mainClassName = 'retrofit2.RoboVmPlatformTest' 18 | 19 | robovm { 20 | archs = 'x86_64' 21 | } 22 | 23 | dependencies { 24 | implementation projects.retrofit 25 | implementation libs.robovm 26 | } 27 | 28 | task robovmTest(type: Exec) { 29 | dependsOn { 30 | robovmInstall 31 | } 32 | commandLine './build/robovm/retrofit2.RoboVmPlatformTest' 33 | } 34 | -------------------------------------------------------------------------------- /retrofit/robovm-test/src/main/java/retrofit2/RoboVmPlatformTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2; 17 | 18 | public final class RoboVmPlatformTest { 19 | public static void main(String[] args) { 20 | Retrofit retrofit = new Retrofit.Builder() 21 | .baseUrl("https://example.com") 22 | .callFactory(c -> { throw new AssertionError(); }) 23 | .build(); 24 | 25 | if (retrofit.callAdapterFactories().size() > 1) { 26 | // Everyone gets the callback executor adapter. If RoboVM was correctly detected it will NOT 27 | // get the Java 8-supporting CompletableFuture call adapter factory. 28 | System.exit(1); 29 | } 30 | } 31 | 32 | private RoboVmPlatformTest() { 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /retrofit/src/main/java/retrofit2/AndroidMainExecutor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2; 17 | 18 | import android.os.Handler; 19 | import android.os.Looper; 20 | import java.util.concurrent.Executor; 21 | 22 | final class AndroidMainExecutor implements Executor { 23 | private final Handler handler = new Handler(Looper.getMainLooper()); 24 | 25 | @Override 26 | public void execute(Runnable r) { 27 | handler.post(r); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /retrofit/src/main/java/retrofit2/http/Multipart.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.http; 17 | 18 | import static java.lang.annotation.ElementType.METHOD; 19 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 20 | 21 | import java.lang.annotation.Documented; 22 | import java.lang.annotation.Retention; 23 | import java.lang.annotation.Target; 24 | 25 | /** 26 | * Denotes that the request body is multi-part. Parts should be declared as parameters and annotated 27 | * with {@link Part @Part}. 28 | */ 29 | @Documented 30 | @Target(METHOD) 31 | @Retention(RUNTIME) 32 | public @interface Multipart {} 33 | -------------------------------------------------------------------------------- /retrofit/src/main/java/retrofit2/http/Streaming.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2014 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.http; 17 | 18 | import static java.lang.annotation.ElementType.METHOD; 19 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 20 | 21 | import java.lang.annotation.Documented; 22 | import java.lang.annotation.Retention; 23 | import java.lang.annotation.Target; 24 | import okhttp3.ResponseBody; 25 | 26 | /** 27 | * Treat the response body on methods returning {@link ResponseBody ResponseBody} as is, i.e. 28 | * without converting the body to {@code byte[]}. 29 | */ 30 | @Documented 31 | @Target(METHOD) 32 | @Retention(RUNTIME) 33 | public @interface Streaming {} 34 | -------------------------------------------------------------------------------- /retrofit/src/main/java/retrofit2/http/package-info.java: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Square, Inc. 2 | 3 | /** Annotations for interface methods to control the HTTP request behavior. */ 4 | package retrofit2.http; 5 | -------------------------------------------------------------------------------- /retrofit/src/main/java/retrofit2/package-info.java: -------------------------------------------------------------------------------- 1 | // Copyright 2014 Square, Inc. 2 | 3 | /** 4 | * Retrofit turns your REST API into a Java interface. 5 | * 6 | *
 7 |  * public interface GitHubService {
 8 |  *   @GET("/users/{user}/repos")
 9 |  *   List<Repo> listRepos(@Path("user") String user);
10 |  * }
11 |  * 
12 | */ 13 | @retrofit2.internal.EverythingIsNonNull 14 | package retrofit2; 15 | -------------------------------------------------------------------------------- /retrofit/src/main/java16/retrofit2/DefaultMethodSupport.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2; 17 | 18 | import java.lang.reflect.InvocationHandler; 19 | import java.lang.reflect.Method; 20 | import javax.annotation.Nullable; 21 | 22 | /** Java 16 finally has a public API for invoking default methods on a proxy. */ 23 | final class DefaultMethodSupport { 24 | @Nullable 25 | static Object invoke( 26 | Method method, Class declaringClass, Object proxy, @Nullable Object[] args) 27 | throws Throwable { 28 | return InvocationHandler.invokeDefault(proxy, method, args); 29 | } 30 | 31 | private DefaultMethodSupport() {} 32 | } 33 | -------------------------------------------------------------------------------- /retrofit/test-helpers/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'java-library' 2 | 3 | dependencies { 4 | api projects.retrofit 5 | 6 | compileOnly libs.findBugsAnnotations 7 | } 8 | -------------------------------------------------------------------------------- /retrofit/test-helpers/src/main/java/retrofit2/helpers/DelegatingCallAdapterFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.helpers; 17 | 18 | import java.lang.annotation.Annotation; 19 | import java.lang.reflect.Type; 20 | import retrofit2.CallAdapter; 21 | import retrofit2.Retrofit; 22 | 23 | public final class DelegatingCallAdapterFactory extends CallAdapter.Factory { 24 | public boolean called; 25 | 26 | @Override 27 | public CallAdapter get(Type returnType, Annotation[] annotations, Retrofit retrofit) { 28 | called = true; 29 | return retrofit.nextCallAdapter(this, returnType, annotations); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /retrofit/test-helpers/src/main/java/retrofit2/helpers/ExampleWithoutParameterNames.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2024 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.helpers; 17 | 18 | import okhttp3.ResponseBody; 19 | import retrofit2.Call; 20 | import retrofit2.http.GET; 21 | 22 | /** This module is compiled without parameter names embedded in the class file. */ 23 | public interface ExampleWithoutParameterNames { 24 | @GET("/") 25 | Call method(String theFirstParameter); 26 | } 27 | -------------------------------------------------------------------------------- /retrofit/test-helpers/src/main/java/retrofit2/helpers/NonMatchingCallAdapterFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2016 Square, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package retrofit2.helpers; 17 | 18 | import java.lang.annotation.Annotation; 19 | import java.lang.reflect.Type; 20 | import javax.annotation.Nullable; 21 | import retrofit2.CallAdapter; 22 | import retrofit2.Retrofit; 23 | 24 | public final class NonMatchingCallAdapterFactory extends CallAdapter.Factory { 25 | public boolean called; 26 | 27 | @Override 28 | public @Nullable CallAdapter get( 29 | Type returnType, Annotation[] annotations, Retrofit retrofit) { 30 | called = true; 31 | return null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /samples/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'org.jetbrains.kotlin.jvm' 2 | 3 | dependencies { 4 | implementation projects.retrofit 5 | implementation projects.retrofitMock 6 | implementation projects.retrofitConverters.moshi 7 | implementation projects.retrofitConverters.gson 8 | implementation projects.retrofitConverters.simplexml 9 | implementation projects.retrofitAdapters.rxjava 10 | implementation libs.okhttp.loggingInterceptor 11 | implementation libs.okhttp.mockwebserver 12 | implementation libs.kotlin.stdLib 13 | implementation libs.kotlinx.coroutines 14 | implementation libs.guava 15 | implementation libs.jsoup 16 | compileOnly libs.findBugsAnnotations 17 | } 18 | -------------------------------------------------------------------------------- /samples/src/main/java/com/example/retrofit/package-info.java: -------------------------------------------------------------------------------- 1 | @javax.annotation.ParametersAreNonnullByDefault 2 | package com.example.retrofit; 3 | -------------------------------------------------------------------------------- /website/.env.release: -------------------------------------------------------------------------------- 1 | SITE=https://square.github.io 2 | BASE_URL=/retrofit 3 | -------------------------------------------------------------------------------- /website/.env.snapshot: -------------------------------------------------------------------------------- 1 | SITE=https://square.github.io 2 | BASE_URL=/retrofit/latest 3 | -------------------------------------------------------------------------------- /website/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | .astro/ 3 | node_modules/ 4 | 5 | # Populated by ./gradlew copyWebsiteDocs 6 | public/3.x/ 7 | -------------------------------------------------------------------------------- /website/README.md: -------------------------------------------------------------------------------- 1 | # Website 2 | 3 | The documentation is [built with Starlight](https://starlight.astro.build). 4 | 5 | Common commands: 6 | 7 | * `npm install` – install deps (must do first or if `package.json` changes) 8 | * `npm run dev` – local, hot-reload server 9 | * `npm run build` – produce distribution in `dist/` 10 | * `npm run preview` – local server of the distribution folder 11 | * `npm run build -- --mode release` – remove "snapshot" banner 12 | -------------------------------------------------------------------------------- /website/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Retrofit Documentation", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "scripts": { 6 | "dev": "astro dev", 7 | "build": "astro build", 8 | "preview": "astro preview", 9 | "astro": "astro" 10 | }, 11 | "dependencies": { 12 | "@astrojs/starlight": "^0.34.0", 13 | "astro": "^5.6.1", 14 | "sharp": "^0.34.0", 15 | "starlight-links-validator": "^0.16.0", 16 | "starlight-versions": "^0.5.3" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /website/public/1.x/converter-jackson/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Converter: Jackson 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/1.x/converter-jackson/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Converter: Jackson 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/1.x/converter-jackson/package-list: -------------------------------------------------------------------------------- 1 | retrofit.converter 2 | -------------------------------------------------------------------------------- /website/public/1.x/converter-jackson/retrofit/converter/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | retrofit.converter (Converter: Jackson 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

retrofit.converter

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /website/public/1.x/converter-jackson/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/1.x/converter-jackson/version.txt: -------------------------------------------------------------------------------- 1 | 1.9.0 -------------------------------------------------------------------------------- /website/public/1.x/converter-protobuf/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Converter: Protocol Buffers 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/1.x/converter-protobuf/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Converter: Protocol Buffers 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/1.x/converter-protobuf/package-list: -------------------------------------------------------------------------------- 1 | retrofit.converter 2 | -------------------------------------------------------------------------------- /website/public/1.x/converter-protobuf/retrofit/converter/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | retrofit.converter (Converter: Protocol Buffers 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

retrofit.converter

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /website/public/1.x/converter-protobuf/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/1.x/converter-protobuf/version.txt: -------------------------------------------------------------------------------- 1 | 1.9.0 -------------------------------------------------------------------------------- /website/public/1.x/converter-simplexml/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Converter: SimpleXML 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/1.x/converter-simplexml/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Converter: SimpleXML 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/1.x/converter-simplexml/package-list: -------------------------------------------------------------------------------- 1 | retrofit.converter 2 | -------------------------------------------------------------------------------- /website/public/1.x/converter-simplexml/retrofit/converter/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | retrofit.converter (Converter: SimpleXML 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

retrofit.converter

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /website/public/1.x/converter-simplexml/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/1.x/converter-simplexml/version.txt: -------------------------------------------------------------------------------- 1 | 1.9.0 -------------------------------------------------------------------------------- /website/public/1.x/converter-wire/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Converter: Wire Protocol Buffers 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/1.x/converter-wire/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Converter: Wire Protocol Buffers 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 |
15 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/1.x/converter-wire/package-list: -------------------------------------------------------------------------------- 1 | retrofit.converter 2 | -------------------------------------------------------------------------------- /website/public/1.x/converter-wire/retrofit/converter/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | retrofit.converter (Converter: Wire Protocol Buffers 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

retrofit.converter

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /website/public/1.x/converter-wire/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/1.x/converter-wire/version.txt: -------------------------------------------------------------------------------- 1 | 1.9.0 -------------------------------------------------------------------------------- /website/public/1.x/retrofit-mock/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Retrofit Mock Adapter 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit-mock/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (Retrofit Mock Adapter 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit-mock/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Overview List (Retrofit Mock Adapter 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |

Packages

16 | 20 |
21 |

 

22 | 23 | 24 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit-mock/package-list: -------------------------------------------------------------------------------- 1 | retrofit 2 | retrofit.android 3 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit-mock/retrofit/android/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | retrofit.android (Retrofit Mock Adapter 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

retrofit.android

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit-mock/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit-mock/version.txt: -------------------------------------------------------------------------------- 1 | 1.9.0 -------------------------------------------------------------------------------- /website/public/1.x/retrofit/package-list: -------------------------------------------------------------------------------- 1 | retrofit 2 | retrofit.android 3 | retrofit.appengine 4 | retrofit.client 5 | retrofit.converter 6 | retrofit.http 7 | retrofit.mime 8 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit/retrofit/android/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | retrofit.android (Retrofit 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

retrofit.android

14 |
15 |

Classes

16 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit/retrofit/appengine/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | retrofit.appengine (Retrofit 1.9.0 API) 8 | 9 | 10 | 11 | 12 | 13 |

retrofit.appengine

14 |
15 |

Classes

16 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/1.x/retrofit/version.txt: -------------------------------------------------------------------------------- 1 | 1.9.0 -------------------------------------------------------------------------------- /website/public/2.x/adapter-guava/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (guava API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-guava/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (guava API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-guava/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.adapter.guava 2 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-guava/retrofit2/adapter/guava/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.adapter.guava (guava API) 7 | 8 | 9 | 10 | 11 |

retrofit2.adapter.guava

12 |
13 |

Classes

14 | 17 |

Exceptions

18 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-guava/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-java8/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (java8 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-java8/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (java8 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-java8/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.adapter.java8 2 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-java8/retrofit2/adapter/java8/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.adapter.java8 (java8 API) 7 | 8 | 9 | 10 | 11 |

retrofit2.adapter.java8

12 |
13 |

Classes

14 | 17 |

Exceptions

18 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-java8/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (rxjava API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (rxjava API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.adapter.rxjava 2 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava/retrofit2/adapter/rxjava/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.adapter.rxjava (rxjava API) 7 | 8 | 9 | 10 | 11 |

retrofit2.adapter.rxjava

12 |
13 |

Classes

14 | 18 |

Exceptions

19 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava2/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (rxjava2 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava2/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (rxjava2 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava2/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.adapter.rxjava2 2 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava2/retrofit2/adapter/rxjava2/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.adapter.rxjava2 (rxjava2 API) 7 | 8 | 9 | 10 | 11 |

retrofit2.adapter.rxjava2

12 |
13 |

Classes

14 | 18 |

Exceptions

19 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava2/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava3/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (rxjava3 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava3/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (rxjava3 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava3/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.adapter.rxjava3 2 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava3/retrofit2/adapter/rxjava3/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.adapter.rxjava3 (rxjava3 API) 7 | 8 | 9 | 10 | 11 |

retrofit2.adapter.rxjava3

12 |
13 |

Classes

14 | 18 |

Exceptions

19 | 22 |
23 | 24 | 25 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-rxjava3/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-scala/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (scala API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-scala/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (scala API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-scala/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.adapter.scala 2 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-scala/retrofit2/adapter/scala/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.adapter.scala (scala API) 7 | 8 | 9 | 10 | 11 |

retrofit2.adapter.scala

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/adapter-scala/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-gson/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (gson API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-gson/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (gson API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-gson/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.converter.gson 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-gson/retrofit2/converter/gson/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.converter.gson (gson API) 7 | 8 | 9 | 10 | 11 |

retrofit2.converter.gson

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-gson/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-guava/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (guava API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-guava/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (guava API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-guava/package-list: -------------------------------------------------------------------------------- 1 | retrofit.converter.guava 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-guava/retrofit/converter/guava/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit.converter.guava (guava API) 7 | 8 | 9 | 10 | 11 |

retrofit.converter.guava

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-guava/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jackson/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (jackson API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jackson/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (jackson API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jackson/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.converter.jackson 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jackson/retrofit2/converter/jackson/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.converter.jackson (jackson API) 7 | 8 | 9 | 10 | 11 |

retrofit2.converter.jackson

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jackson/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-java8/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (java8 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-java8/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (java8 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-java8/package-list: -------------------------------------------------------------------------------- 1 | retrofit.converter.java8 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-java8/retrofit/converter/java8/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit.converter.java8 (java8 API) 7 | 8 | 9 | 10 | 11 |

retrofit.converter.java8

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-java8/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (jaxb API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (jaxb API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.converter.jaxb 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb/retrofit2/converter/jaxb/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.converter.jaxb (jaxb API) 7 | 8 | 9 | 10 | 11 |

retrofit2.converter.jaxb

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb3/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (jaxb3 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb3/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (jaxb3 API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb3/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.converter.jaxb3 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb3/retrofit2/converter/jaxb3/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.converter.jaxb3 (jaxb3 API) 7 | 8 | 9 | 10 | 11 |

retrofit2.converter.jaxb3

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-jaxb3/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/images/anchor-copy-button.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/images/copy-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/images/copy-successful-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/images/footer-go-to-link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/images/go-to-top-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/images/logo-icon.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/kotlinx-serialization/package-list: -------------------------------------------------------------------------------- 1 | $dokka.format:html-v1 2 | $dokka.linkExtension:html 3 | $dokka.location:retrofit2.converter.kotlinx.serialization////PointingToDeclaration/kotlinx-serialization/retrofit2.converter.kotlinx.serialization/index.html 4 | $dokka.location:retrofit2.converter.kotlinx.serialization//asConverterFactory/kotlinx.serialization.BinaryFormat#okhttp3.MediaType/PointingToDeclaration/kotlinx-serialization/retrofit2.converter.kotlinx.serialization/as-converter-factory.html 5 | $dokka.location:retrofit2.converter.kotlinx.serialization//asConverterFactory/kotlinx.serialization.StringFormat#okhttp3.MediaType/PointingToDeclaration/kotlinx-serialization/retrofit2.converter.kotlinx.serialization/as-converter-factory.html 6 | retrofit2.converter.kotlinx.serialization 7 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/scripts/pages.json: -------------------------------------------------------------------------------- 1 | [{"name":"fun BinaryFormat.asConverterFactory(contentType: MediaType): Converter.Factory","description":"retrofit2.converter.kotlinx.serialization.asConverterFactory","location":"kotlinx-serialization/retrofit2.converter.kotlinx.serialization/as-converter-factory.html","searchKeys":["asConverterFactory","fun BinaryFormat.asConverterFactory(contentType: MediaType): Converter.Factory","retrofit2.converter.kotlinx.serialization.asConverterFactory"]},{"name":"fun StringFormat.asConverterFactory(contentType: MediaType): Converter.Factory","description":"retrofit2.converter.kotlinx.serialization.asConverterFactory","location":"kotlinx-serialization/retrofit2.converter.kotlinx.serialization/as-converter-factory.html","searchKeys":["asConverterFactory","fun StringFormat.asConverterFactory(contentType: MediaType): Converter.Factory","retrofit2.converter.kotlinx.serialization.asConverterFactory"]}] -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/scripts/sourceset_dependencies.js: -------------------------------------------------------------------------------- 1 | sourceset_dependencies='{":retrofit-converters:kotlinx-serialization:dokkaHtml/main":[]}' -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/styles/logo-styles.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. 3 | */ 4 | 5 | :root { 6 | --dokka-logo-image-url: url('../images/logo-icon.svg'); 7 | --dokka-logo-height: 28px; 8 | --dokka-logo-width: 28px; 9 | } 10 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/burger.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/checkbox-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/checkbox-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/class-kotlin.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/class.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/enum-kotlin.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/enum.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/exception-class.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/field-value.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/field-variable.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/function.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/homepage.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/interface-kotlin.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/interface.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/object.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/placeholder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/theme-toggle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /website/public/2.x/converter-kotlinx-serialization/ui-kit/assets/typealias-kotlin.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /website/public/2.x/converter-moshi/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (moshi API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-moshi/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (moshi API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-moshi/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.converter.moshi 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-moshi/retrofit2/converter/moshi/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.converter.moshi (moshi API) 7 | 8 | 9 | 10 | 11 |

retrofit2.converter.moshi

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-moshi/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-protobuf/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (protobuf API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-protobuf/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (protobuf API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-protobuf/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.converter.protobuf 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-protobuf/retrofit2/converter/protobuf/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.converter.protobuf (protobuf API) 7 | 8 | 9 | 10 | 11 |

retrofit2.converter.protobuf

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-protobuf/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-scalars/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (scalars API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-scalars/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (scalars API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-scalars/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.converter.scalars 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-scalars/retrofit2/converter/scalars/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.converter.scalars (scalars API) 7 | 8 | 9 | 10 | 11 |

retrofit2.converter.scalars

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-scalars/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-simplexml/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (simplexml API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-simplexml/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (simplexml API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-simplexml/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.converter.simplexml 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-simplexml/retrofit2/converter/simplexml/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.converter.simplexml (simplexml API) 7 | 8 | 9 | 10 | 11 |

retrofit2.converter.simplexml

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-simplexml/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/converter-wire/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (wire API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-wire/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (wire API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /website/public/2.x/converter-wire/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.converter.wire 2 | -------------------------------------------------------------------------------- /website/public/2.x/converter-wire/retrofit2/converter/wire/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.converter.wire (wire API) 7 | 8 | 9 | 10 | 11 |

retrofit2.converter.wire

12 |
13 |

Classes

14 | 17 |
18 | 19 | 20 | -------------------------------------------------------------------------------- /website/public/2.x/converter-wire/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/retrofit-mock/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (retrofit-mock API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /website/public/2.x/retrofit-mock/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | All Classes (retrofit-mock API) 7 | 8 | 9 | 10 | 11 |

All Classes

12 |
13 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /website/public/2.x/retrofit-mock/package-list: -------------------------------------------------------------------------------- 1 | retrofit2.mock 2 | -------------------------------------------------------------------------------- /website/public/2.x/retrofit-mock/retrofit2/mock/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | retrofit2.mock (retrofit-mock API) 7 | 8 | 9 | 10 | 11 |

retrofit2.mock

12 |
13 |

Classes

14 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /website/public/2.x/retrofit-mock/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/public/2.x/retrofit/overview-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Overview List (retrofit API) 7 | 8 | 9 | 10 | 11 | 12 |
13 |

Packages

14 | 18 |
19 |

 

20 | 21 | 22 | -------------------------------------------------------------------------------- /website/public/2.x/retrofit/package-list: -------------------------------------------------------------------------------- 1 | retrofit2 2 | retrofit2.http 3 | -------------------------------------------------------------------------------- /website/public/2.x/retrofit/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /website/src/content.config.ts: -------------------------------------------------------------------------------- 1 | import { defineCollection, z } from 'astro:content'; 2 | import { docsLoader } from '@astrojs/starlight/loaders'; 3 | import { docsSchema } from '@astrojs/starlight/schema'; 4 | 5 | export const collections = { 6 | docs: defineCollection({ 7 | loader: docsLoader(), 8 | schema: docsSchema({ 9 | // In non-"release" mode, add a banner indicating snapshot documentation. 10 | extend: z.object(import.meta.env.MODE == "release" && {} || { 11 | banner: z.object({ content: z.string() }).default({ 12 | content: `You are viewing the snapshot documentation. Looking for the release documentation?`, 13 | }), 14 | }), 15 | }), 16 | }), 17 | }; 18 | -------------------------------------------------------------------------------- /website/src/content/docs/contributing.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Contributing 3 | --- 4 | 5 | If you would like to contribute code you can do so through GitHub by forking the repository and sending a pull request. 6 | When submitting code, please make every effort to follow existing conventions and style in order to keep the code as readable as possible. Please also make sure your code compiles by running `./gradlew build` (or `gradlew.bat build` for Windows). 7 | Before your code can be accepted into the project you must also sign the [Individual Contributor License Agreement (CLA)](https://squ.re/sign-the-cla). 8 | 9 | 10 | ## License 11 | 12 | ``` 13 | Copyright 2013 Square, Inc. 14 | 15 | Licensed under the Apache License, Version 2.0 (the "License"); 16 | you may not use this file except in compliance with the License. 17 | You may obtain a copy of the License at 18 | 19 | http://www.apache.org/licenses/LICENSE-2.0 20 | 21 | Unless required by applicable law or agreed to in writing, software 22 | distributed under the License is distributed on an "AS IS" BASIS, 23 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24 | See the License for the specific language governing permissions and 25 | limitations under the License. 26 | ``` 27 | -------------------------------------------------------------------------------- /website/src/content/docs/download.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | title: Download 3 | --- 4 | 5 | import { Code } from '@astrojs/starlight/components'; 6 | import { VERSION } from 'astro:env/server'; 7 | 8 | export const gradleSnippet = 'implementation("com.squareup.retrofit2:retrofit:' + VERSION + '")'; 9 | export const mavenSnippet = ` 10 | com.squareup.retrofit2 11 | retrofit 12 | ` + VERSION + ` 13 | `; 14 | 15 | The source code to the Retrofit, its samples, and this website is [available on GitHub](https://github.com/square/retrofit). 16 | 17 | ### Gradle 18 | 19 | 20 | 21 | ### Maven 22 | 23 | 24 | 25 | Retrofit requires at minimum Java 8+ or Android API 21+. 26 | 27 | ### R8 / ProGuard 28 | 29 | If you are using R8 the shrinking and obfuscation rules are included automatically. 30 | 31 | ProGuard users must manually add the options from [retrofit2.pro](https://github.com/square/retrofit/blob/master/retrofit/src/main/resources/META-INF/proguard/retrofit2.pro). 32 | You might also need rules for [OkHttp](https://square.github.io/okhttp/r8_proguard) and [Okio](https://github.com/square/okio#r8--proguard) which are dependencies of this library. 33 | -------------------------------------------------------------------------------- /website/src/content/docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Introduction 3 | --- 4 | 5 | Retrofit turns your HTTP API into a Java (or Kotlin) interface. 6 | 7 | ```java 8 | public interface GitHubService { 9 | @GET("users/{user}/repos") 10 | Call> listRepos(@Path("user") String user); 11 | } 12 | ``` 13 | 14 | The `Retrofit` class generates an implementation of the `GitHubService` interface. 15 | 16 | ```java 17 | Retrofit retrofit = new Retrofit.Builder() 18 | .baseUrl("https://api.github.com") 19 | .build(); 20 | 21 | GitHubService service = retrofit.create(GitHubService.class); 22 | ``` 23 | 24 | Each `Call` from the created `GitHubService` can make synchronous or asynchronous HTTP requests to the remote webserver. 25 | 26 | ```java 27 | Call> repos = service.listRepos("octocat"); 28 | ``` 29 | 30 | Use annotations to describe the HTTP request on each interface method: 31 | 32 | * URL parameter replacement and query parameter support 33 | * Object conversion to request body (e.g., JSON, protocol buffers) 34 | * Multipart request body and file upload 35 | -------------------------------------------------------------------------------- /website/src/styles/theme.css: -------------------------------------------------------------------------------- 1 | /* Dark mode colors. */ 2 | :root { 3 | --sl-color-accent-low: #0e2a1c; 4 | --sl-color-accent: #007e50; 5 | --sl-color-accent-high: #b1d2bf; 6 | --sl-color-white: #ffffff; 7 | --sl-color-gray-1: #eaf0e8; 8 | --sl-color-gray-2: #bdc4bb; 9 | --sl-color-gray-3: #82907f; 10 | --sl-color-gray-4: #4f5c4d; 11 | --sl-color-gray-5: #303c2d; 12 | --sl-color-gray-6: #1f2a1c; 13 | --sl-color-black: #151a13; 14 | } 15 | /* Light mode colors. */ 16 | :root[data-theme='light'] { 17 | --sl-color-accent-low: #c6decf; 18 | --sl-color-accent: #007b4e; 19 | --sl-color-accent-high: #0a3c26; 20 | --sl-color-white: #151a13; 21 | --sl-color-gray-1: #1f2a1c; 22 | --sl-color-gray-2: #303c2d; 23 | --sl-color-gray-3: #4f5c4d; 24 | --sl-color-gray-4: #82907f; 25 | --sl-color-gray-5: #bdc4bb; 26 | --sl-color-gray-6: #eaf0e8; 27 | --sl-color-gray-7: #f4f7f3; 28 | --sl-color-black: #ffffff; 29 | } 30 | -------------------------------------------------------------------------------- /website/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict", 3 | "include": [".astro/types.d.ts", "**/*"], 4 | "exclude": ["dist"] 5 | } 6 | --------------------------------------------------------------------------------