All Projects → adibfara → Watchtower

adibfara / Watchtower

🗼Observe OKHttp API Calls With Request And Response Details Right In Your Browser!

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Watchtower

Templeapp
Android App which handles the information about temple. People can register and keep a track of all poojas, donations made to the temple.
Stars: ✭ 231 (-19.23%)
Mutual labels:  okhttp, retrofit2
Kotlin Networking
Kotlin Networking - An elegant networking library written in Kotlin
Stars: ✭ 88 (-69.23%)
Mutual labels:  networking, okhttp
Fast Android Networking
🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
Stars: ✭ 5,346 (+1769.23%)
Mutual labels:  networking, okhttp
Dagger2
Kotlin Dagger2 example project
Stars: ✭ 145 (-49.3%)
Mutual labels:  okhttp, retrofit2
BaseDevelop
an android project for now fashion open source framework
Stars: ✭ 24 (-91.61%)
Mutual labels:  okhttp, retrofit2
Retrofiturlmanager
🔮 Let Retrofit support multiple baseUrl and can be change the baseUrl at runtime (以最简洁的 Api 让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl).
Stars: ✭ 1,961 (+585.66%)
Mutual labels:  okhttp, retrofit2
Fetch
The best file downloader library for Android
Stars: ✭ 1,124 (+293.01%)
Mutual labels:  networking, okhttp
Kotlin Life
App界的一股清流 音视频vr应有尽有 完全按照Material design规范设计的App (written with java and Kotlin)
Stars: ✭ 864 (+202.1%)
Mutual labels:  okhttp, retrofit2
iMoney
iMoney 金融项目
Stars: ✭ 55 (-80.77%)
Mutual labels:  okhttp, retrofit2
WanAndroid
wanandroid的Kotlin版,采用Android X
Stars: ✭ 20 (-93.01%)
Mutual labels:  okhttp, retrofit2
Mvpframes
整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX
Stars: ✭ 100 (-65.03%)
Mutual labels:  okhttp, retrofit2
RetrofitHelper
💪 RetrofitHelper是一个支持配置多个BaseUrl,支持动态改变BaseUrl,动态配置超时时长的Retrofit帮助类
Stars: ✭ 15 (-94.76%)
Mutual labels:  okhttp, retrofit2
Ticket Analysis
移动端的彩票开奖查询系统
Stars: ✭ 61 (-78.67%)
Mutual labels:  okhttp, retrofit2
Retrofitrxjavademo
Retrofit+Rxjava + OkHttp 封装简易网络请求库,附有demo 示例
Stars: ✭ 160 (-44.06%)
Mutual labels:  okhttp, retrofit2
Weaponapp
一个尽量做到极致的集大成App,努力做到最好(开发阶段)——MVVM+Retrofit+RxJava+Small 插件化+单元测试+MD
Stars: ✭ 1,011 (+253.5%)
Mutual labels:  okhttp, retrofit2
Okreplay
📼 Record and replay OkHttp network interaction in your tests.
Stars: ✭ 697 (+143.71%)
Mutual labels:  networking, okhttp
Mvvmhabit
goldze: 本人喜欢尝试新的技术,以后发现有好用的东西,我将会在企业项目中实战,没有问题了就会把它引入到MVVMHabit中,一直维护着这套框架,谢谢各位朋友的支持。如果觉得这套框架不错的话,麻烦点个 star,你的支持则是我前进的动力!
Stars: ✭ 6,789 (+2273.78%)
Mutual labels:  okhttp, retrofit2
Avenuenet
AvenueNet 是一个基于 Retrofit 二次封装的网络请求库,使用 Rxjava 的链式调用方式,二次封装的目的是为了对请求数据的正确性以及错误状态做统一的处理,对 Retrofit 对象做管理,有点为业务而生的味道,并非纯正的网络请求库
Stars: ✭ 10 (-96.5%)
Mutual labels:  okhttp, retrofit2
weather
基于MVP的安卓天气demo
Stars: ✭ 49 (-82.87%)
Mutual labels:  okhttp, retrofit2
RxHttp
基于RxJava2+Retrofit+OkHttp4.x封装的网络请求类库,亮点多多,完美兼容MVVM(ViewModel,LiveData),天生支持网络请求和生命周期绑定,天生支持多BaseUrl,支持文件上传下载进度监听,支持断点下载,支持Glide和网络请求公用一个OkHttpClient⭐⭐⭐
Stars: ✭ 25 (-91.26%)
Mutual labels:  okhttp, retrofit2

WatchTower - Observe OKHttp API Calls With Request And Response Details Right In Your Browser!

Build Status Download

Screenshot

Download

Add the dependencies to your project:

debugImplementation 'com.snakyapps.watchtower:interceptor-okhttp:2.0.2'
releaseImplementation 'com.snakyapps.watchtower:interceptor-okhttp-no-op:2.0.2' // no-op dependency for non-debug build variants

Setup

Add the interceptor to your OKHttp Client

        val retrofit = Retrofit.Builder()
                        .client(
                            OkHttpClient.Builder()
                            .addInterceptor(WatchTowerInterceptor())
                            .build()
                        )
                        // ...
                .build()

        WatchTower.start(WebWatchTowerObserver(port = 8085)) // in Application class

(Optional for Android) Add the Android artifact

Android Artifact

You can add the following artifact to see the requests right in your notification area. You can collect from a Flow<Notification> and notify the notification manager.

debugImplementation 'com.snakyapps.watchtower:android:2.0.2'
releaseImplementation 'com.snakyapps.watchtower:android-no-op:2.0.2' // no-op dependency for non-debug build variants
   someScope.launch {
                WatchTowerAndroid.notificationFlow(application, serverPort).collect {
                    notification ->
                    (getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).notify(999991, notification.build())
                }
            }

To turn off notifications, you can cancel the coroutine Job (e.g. launch).

Features

Video

  • Track and observe all API calls made through OKHttp's client
  • GET, POST, PUT, DELETE, PATCH methods
  • Query parameters, request and response body and headers
  • Response success and failure status, size, date and latency
  • Adjustable port for the server and the websocket server
  • API call history, even If no browsers were open
  • Search in the URLs of all requests
  • Fully responsive UI
  • Fully extensible

Observing the events using your browser Connect the device that is running the app to the same network that you want to observe the data. If you are on a WiFi, both devices should be connected to the same WiFi so they can communicate with each other. After running your application, you can navigate to http://yourip:8085/ and view the network calls. If you don't know what yourip is, It will be printed out to the console with the message of WatchTower started, listening on ... when Watchtower.start() is called.

Observing emulator events in your computers browser If your running WatchTower in an emulator you need to forward both server and websocket ports from the emulator to your local computer. For example if WatchTower is running on port 8085 you would need to run:

adb forward tcp:8085 tcp:8085
adb forward tcp:5003 tcp:5003

The forward of port 5003 is used for the websocket connection.

Notes

PRs are more than welcome, and please file an issue If you encounter something 🍻.

You can also ping me on twitter @TheSNAKY.

License

Copyright 2019 Adib Faramarzi.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].