Pinch 👌
Callback and promise based HTTP client that supports SSL pinning for React Native.
Installation
Using NPM:
npm install react-native-pinch
Using Yarn:
yarn add react-native-pinch
Automatically link
With React Native 0.27+
react-native link react-native-pinch
With older versions of React Native
You need rnpm
(npm install -g rnpm
)
rnpm link react-native-pinch
Manually link
iOS (via Cocoa Pods)
Add the following line to your build targets in your Podfile
pod 'RNPinch', :path => '../node_modules/react-native-pinch'
Then run pod install
Android
- in
android/app/build.gradle
:
dependencies { ... compile "com.facebook.react:react-native:+" // From node_modules+ compile project(':react-native-pinch')}
- in
android/settings.gradle
:
...include ':app'+ include ':react-native-pinch'+ project(':react-native-pinch').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-pinch/android')
With React Native 0.29+
- in
MainApplication.java
:
+ import com.localz.PinchPackage; public class MainApplication extends Application implements ReactApplication { //...... @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList(+ new PinchPackage(), new MainReactPackage() ); } ...... }
With older versions of React Native:
- in
MainActivity.java
:
+ import com.localz.PinchPackage; public class MainActivity extends ReactActivity { ...... @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList(+ new PinchPackage(), new MainReactPackage() ); } }
Adding certificates
Before you can make requests using SSL pinning, you first need to add your .cer
files to your project's assets.
Android
- Place your
.cer
files undersrc/main/assets/
.
iOS
- Place your
.cer
files in your iOS Project. Don't forget to add them in yourBuild Phases > Copy Bundle Resources
, in Xcode.
Example
Examples are using the ES6 standard
Requests can be made by using the fetch(url[, config, [callback]])
method of Pinch.
Using Promises
; pinch
Using Callbacks
; pinch
Skipping validation
; pinch
Response Schema
bodyString: '' headers: {} status: 200 statusText: 'OK'