All Projects → jainsahab → Androidsnooper

jainsahab / Androidsnooper

Licence: apache-2.0
Android library to record the network calls through the interceptor mechanism of the http clients.

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to Androidsnooper

Tapping device
TappingDevice makes objects tell you what they do, so you don't need to track them yourself.
Stars: ✭ 296 (+124.24%)
Mutual labels:  debugging, debugging-tool
Superdump
A service for automated crash-dump analysis
Stars: ✭ 384 (+190.91%)
Mutual labels:  debugging, debugging-tool
Tensorwatch
Debugging, monitoring and visualization for Python Machine Learning and Data Science
Stars: ✭ 3,191 (+2317.42%)
Mutual labels:  debugging, debugging-tool
Remix Ide
Documentation for Remix IDE
Stars: ✭ 1,768 (+1239.39%)
Mutual labels:  debugging, debugging-tool
Power trace
Buff exception backtrace with local variables, passed in arguments and instance variables!
Stars: ✭ 48 (-63.64%)
Mutual labels:  debugging, debugging-tool
Watchpoints
watchpoints is an easy-to-use, intuitive variable/object monitor tool for python that behaves similar to watchpoints in gdb.
Stars: ✭ 261 (+97.73%)
Mutual labels:  debugging, debugging-tool
Xcglogger
A debug log framework for use in Swift projects. Allows you to log details to the console (and optionally a file), just like you would have with NSLog() or print(), but with additional information, such as the date, function name, filename and line number.
Stars: ✭ 3,710 (+2710.61%)
Mutual labels:  debugging, debugging-tool
guide-charles-proxy
Charles - Web Debugging Proxy Application. I want to share my experiences when I worked with Charles. It is such an amazing application for debugging and testing the presentation of UI when trying different set of data. Hope you guys will master Charles after reading this section. Let’s find out! 🖍
Stars: ✭ 22 (-83.33%)
Mutual labels:  debugging, debugging-tool
Bugsnag Android
Bugsnag crash monitoring and reporting tool for Android apps
Stars: ✭ 990 (+650%)
Mutual labels:  debugging, debugging-tool
Grpc Tools
A suite of gRPC debugging tools. Like Fiddler/Charles but for gRPC.
Stars: ✭ 881 (+567.42%)
Mutual labels:  interceptor, debugging-tool
Debugo
一个可能有点用的 iOS 调试工具~
Stars: ✭ 258 (+95.45%)
Mutual labels:  debugging, debugging-tool
Robin
Robin is a logging library for Bundle data passed between Activities and fragments. It also provides a callback to send screen views of user visited pages to your analytics client
Stars: ✭ 63 (-52.27%)
Mutual labels:  debugging, debugging-tool
jquery-manager
Manage jQuery and jQuery Migrate on a WordPress website, activate a specific jQuery and/or jQuery Migrate version. The ultimate jQuery debugging tool for WordPress
Stars: ✭ 27 (-79.55%)
Mutual labels:  debugging, debugging-tool
Martian
The HTTP abstraction library for Clojure/script, supporting Swagger, Schema, re-frame and more
Stars: ✭ 294 (+122.73%)
Mutual labels:  http-client, interceptor
caddy-trace
Request Debugging Middleware Plugin for Caddy v2
Stars: ✭ 25 (-81.06%)
Mutual labels:  debugging, debugging-tool
Cocoadebug
iOS Debugging Tool 🚀
Stars: ✭ 3,769 (+2755.3%)
Mutual labels:  debugging, debugging-tool
madbomber
Backtrace-on-throw C++ exception logger
Stars: ✭ 17 (-87.12%)
Mutual labels:  debugging, debugging-tool
Mediator
Cross-platform GUI gRPC debugging proxy
Stars: ✭ 36 (-72.73%)
Mutual labels:  debugging, debugging-tool
Bugsnag Laravel
Bugsnag notifier for the Laravel PHP framework. Monitor and report Laravel errors.
Stars: ✭ 746 (+465.15%)
Mutual labels:  debugging, debugging-tool
Bugsnag Node
[DEPRECATED] Please upgrade to our Universal JS notifier "@bugsnag/js" • https://github.com/bugsnag/bugsnag-js
Stars: ✭ 48 (-63.64%)
Mutual labels:  debugging, debugging-tool

Android Snooper

Build Status codecov Maven Central BCH compliance HitCount

Introduction

Android Snooper is a library which helps in debugging issues while running the applications on android devices. One of the basic features provided includes HTTP inspection, which observes all the HTTP calls made by the app. When the device is shaked, history of all the HTTP requests is presented with their responses and allows search, copy and sharing of the request/response. This library is inspired by the Network Request History feature of FLEX app for iOS.

Snooper

How to use?

Android Snooper works on the interceptor pattern which is supported by almost every HTTP client. All you need to do is initialize Android Snooper using AndroidSnooper.init(this); statement in your Application class and set an instance of SnooperInterceptor to the list of your network interceptors. As of now Snooper supports the interceptors for the following libraries:

Didn't get your HTTP client's name in the list? No worries, You can still write your own implementation by using Android Snooper's core module and let Android Snooper know about the request being made. Below is given a dummy implementation.

    AndroidSnooper androidSnooper = AndroidSnooper.getInstance();
    HttpCall httpCall = new HttpCall.Builder()
      .withUrl(httpRequest.getUrl())
      .withPayload(httpRequest.getRequestPayload())
      .withMethod(httpRequest.getMethod())
      .withResponseBody(httpResponse.getResponseBody())
      .withStatusCode(httpResponse.getRawStatusCode())
      .withStatusText(httpResponse.getStatusCode())
      .withRequestHeaders(httpRequest.getHeaders())
      .withResponseHeaders(httpResponse.getHeaders())
      .build();
    androidSnooper.record(httpCall);

The above implementation ought to be part of your custom interceptor where you will have access to the required Request and Response object to jot down the required data for Android Snooper to work properly.

Warning: Android Snooper records each and every HTTP call intercepted by it. The sole purpose of Android snooper is to help in debugging, hence only Debug or QA builds are the perfect candidates for integrating the library. Sensitive information such as Auth Tokens, Headers, etc are not supposed to be exposed and hence production apps should not integrate the library.

Integration

    repositories {
        mavenCentral()
    }

    // when using Android Snooper's core module
    compile ('com.github.jainsahab:Snooper:[email protected]'){
      transitive = true
    }

    // Android Snooper library for "Spring Android Rest Template"
    compile ('com.github.jainsahab:Snooper-Spring:[email protected]'){
      transitive = true
    }
    
    // Android Snooper library for "Square's Okhttp"
    compile ('com.github.jainsahab:Snooper-Okhttp:[email protected]'){
      transitive = true
    }

Snapshot versions are available in Sonatype's snapshots repository.

Contributing

If you would like to contribute code to AndroidSnooper you can do so by forking the repository and create a Pull request. You can also create an Issue to report bugs or features that you want to see in AndroidSnooper library.

Attributions

This library uses:

LICENSE

Copyright (C) 2017 Prateek Jain

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].