Summary: Releasing version 0.210.0 Reviewed By: lblasa Differential Revision: D47994316 fbshipit-source-id: 24559a57d58a769f6e578cf344135522e4e7c9be
100 lines
2.9 KiB
Plaintext
100 lines
2.9 KiB
Plaintext
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
import Link from '@docusaurus/Link';
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
import ProtobufRetrofitSetup from './_protobuf-retrofit.mdx';
|
|
|
|
To use the <Link to={useBaseUrl("/docs/features/plugins/network")}>Network plugin</Link>, you need to add the plugin to your Flipper client instance.
|
|
|
|
## Android
|
|
|
|
The network plugin is shipped as a separate Maven artifact, as follows:
|
|
|
|
```groovy
|
|
dependencies {
|
|
debugImplementation 'com.facebook.flipper:flipper-network-plugin:0.210.0'
|
|
}
|
|
```
|
|
|
|
Once added to your dependencies, you can instantiate the plugin and add it to the client:
|
|
|
|
```java
|
|
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
|
|
|
|
NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
|
|
new NetworkingModule.CustomClientBuilder() {
|
|
@Override
|
|
public void apply(OkHttpClient.Builder builder) {
|
|
builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
|
|
}
|
|
});
|
|
client.addPlugin(networkFlipperPlugin);
|
|
```
|
|
|
|
### OkHttp Integration
|
|
|
|
If you are using the popular OkHttp library, you can use the Interceptors system to automatically hook into your existing stack, as shown in the following snippet:
|
|
|
|
```java
|
|
import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
|
|
|
|
new OkHttpClient.Builder()
|
|
.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin))
|
|
.build();
|
|
```
|
|
|
|
As interceptors can modify the request and response, add the Flipper interceptor after all others to get an accurate view of the network traffic.
|
|
|
|
### Protobuf / Retrofit Integration
|
|
|
|
If you are using Retrofit with Protobuf request or response types, you can setup automatic decoding so that the network inspector can display a human readable payload. First you must add the separate dependency:
|
|
|
|
```groovy
|
|
dependencies {
|
|
debugImplementation 'com.facebook.flipper:flipper-retrofit2-protobuf-plugin:0.91.2'
|
|
}
|
|
```
|
|
|
|
Then call `SendProtobufToFlipperFromRetrofit` for each service class:
|
|
|
|
```kotlin
|
|
import com.facebook.flipper.plugins.retrofit2protobuf.SendProtobufToFlipperFromRetrofit
|
|
|
|
SendProtobufToFlipperFromRetrofit("https://baseurl.com/", MyApiService::class.java)
|
|
```
|
|
|
|
## iOS
|
|
|
|
To enable network inspection, add the following pod to your Podfile:
|
|
|
|
```ruby
|
|
pod 'FlipperKit/SKIOSNetworkPlugin', '~>' + flipperkit_version
|
|
```
|
|
|
|
Initialize the plugin in the following way by updating AppDelegate.m:
|
|
|
|
<Tabs defaultValue="objc" values={[{ label: 'ObjC', value: 'objc'}, { label: 'Swift', value: 'swift'}]}>
|
|
<TabItem value="objc">
|
|
|
|
```objc
|
|
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
|
|
|
|
[[FlipperClient sharedClient] addPlugin: [[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="swift">
|
|
|
|
```swift
|
|
import FlipperKit
|
|
|
|
client?.add(FlipperKitNetworkPlugin(networkAdapter: SKIOSNetworkAdapter()))
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
## Protobuf + Retrofit Setup
|
|
|
|
<ProtobufRetrofitSetup />
|