# yanzhenjie/nohttp

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/yanzhenjie-nohttp).**

3,728 stars · 848 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/yanzhenjie/NoHttp
- Homepage: https://github.com/yanzhenjie/NoHttp
- awesome-repositories: https://awesome-repositories.com/repository/yanzhenjie-nohttp.md

## Topics

`httpurlconnection` `nohttp` `okhttp` `restful`

## Description

NoHttp is an Android HTTP client framework that provides a simplified interface for executing synchronous and asynchronous network calls. It functions as a request wrapper with integrated support for response parsing, a network cache manager for storing data locally, and a file download manager for retrieving remote content.

The framework features strategy-based backend switching, allowing it to swap between OkHttp and URLConnection implementations at runtime. It includes a byte-range resume mechanism for continuing interrupted file transfers and a multi-tier cache layer that supports encrypted storage in local databases or on disk.

The library covers a broad surface of networking capabilities, including interceptor-based request construction, custom response parsing, and request header and parameter management. It also provides utilities for monitoring and debugging network traffic.

## Tags

### Mobile Development

- [Android HTTP Networking Libraries](https://awesome-repositories.com/f/mobile-development/android-ecosystem/android-libraries/android-http-networking-libraries.md) — A comprehensive Android library for executing HTTP requests with integrated response parsing and file management.
- [Android Client-Side Networking Frameworks](https://awesome-repositories.com/f/mobile-development/android-client-side-networking-frameworks.md) — A native Android framework for managing HTTP requests, response parsing, and network communication.

### Networking & Communication

- [HTTP Client Wrappers](https://awesome-repositories.com/f/networking-communication/http-client-wrappers.md) — Provides a simplified wrapper for executing synchronous and asynchronous HTTP calls with integrated response parsing.
- [Synchronous Executions](https://awesome-repositories.com/f/networking-communication/http-request-customization/request-execution/synchronous-executions.md) — Allows performing network requests on background threads that block until the response is received. ([source](https://cdn.jsdelivr.net/gh/yanzhenjie/nohttp@master/README.md))
- [Request Interceptors](https://awesome-repositories.com/f/networking-communication/request-interceptors.md) — Employs a pipeline of interceptors to sequentially build final network requests and apply headers.
- [Byte-Range Requesting](https://awesome-repositories.com/f/networking-communication/byte-range-requesting.md) — Utilizes HTTP range headers to request specific byte offsets, enabling the resumption of interrupted file transfers.
- [Download Resumption](https://awesome-repositories.com/f/networking-communication/download-resumption.md) — Supports breakpoint continuation to resume interrupted file downloads from the last received byte. ([source](https://cdn.jsdelivr.net/gh/yanzhenjie/nohttp@master/README.md))
- [Progress-Tracking File Downloads](https://awesome-repositories.com/f/networking-communication/remote-file-downloads/progress-tracking-file-downloads.md) — Saves remote content to local storage with support for custom filenames and transfer progress tracking. ([source](https://cdn.jsdelivr.net/gh/yanzhenjie/nohttp@master/README.md))
- [Android File Download Managers](https://awesome-repositories.com/f/networking-communication/remote-file-downloads/progress-tracking-file-downloads/android-file-download-managers.md) — Provides a download manager for Android that supports progress tracking and resuming interrupted transfers.

### Data & Databases

- [Response Caching](https://awesome-repositories.com/f/data-databases/key-value-stores/response-caching.md) — Caches network responses in local databases or on disk to improve speed and reduce data usage.
- [Network Client Switching](https://awesome-repositories.com/f/data-databases/network-client-switching.md) — Allows swapping between OkHttp and URLConnection implementations at runtime via a common interface.
- [HTTP Response Caching](https://awesome-repositories.com/f/data-databases/key-value-stores/response-caching/computational-result-caching/http-response-caching.md) — Provides a system for caching HTTP responses in local databases or on disk with encryption and freshness controls.

### DevOps & Infrastructure

- [Multi-Layered Caching](https://awesome-repositories.com/f/devops-infrastructure/caching-layers/multi-layered-caching.md) — Implements a multi-tier caching system that stores responses in local databases or encrypted files.
- [Typed Response Parsers](https://awesome-repositories.com/f/devops-infrastructure/response-parsing-utilities/response-body-parsing/typed-response-parsers.md) — Provides typed response parsers that map raw network bytes to specific Java objects via base classes.

### Programming Languages & Runtimes

- [Asynchronous Request Execution](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/asynchronous-processing/asynchronous-request-execution.md) — Implements non-blocking network requests using managed thread pools to ensure the application UI remains responsive. ([source](https://cdn.jsdelivr.net/gh/yanzhenjie/nohttp@master/README.md))
- [Background Request Queues](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/concurrency/task-orchestration-frameworks/thread-pools/thread-pool-monitors/dynamic-thread-pool-managers/background-request-queues.md) — Manages background network operations using a managed queue to prevent blocking the main application thread.

### Web Development

- [Mobile API Integrations](https://awesome-repositories.com/f/web-development/mobile-api-integrations.md) — Connects Android applications to backend services by managing request parameters, headers, and JSON parsing.
- [Request Header Management](https://awesome-repositories.com/f/web-development/parameter-encoding-schemes/http-header-and-parameter-management/request-header-management.md) — Includes utilities to add or override HTTP request headers using various data types for custom metadata. ([source](https://cdn.jsdelivr.net/gh/yanzhenjie/nohttp@master/README.md))
- [Custom Body Parsers](https://awesome-repositories.com/f/web-development/request-body-handling/custom-body-parsers.md) — Provides extensibility to map incoming data bytes to specific object types through custom parsing methods. ([source](https://cdn.jsdelivr.net/gh/yanzhenjie/nohttp@master/README.md))
- [Request Body Attachers](https://awesome-repositories.com/f/web-development/request-body-handling/request-body-alterations/request-body-attachers.md) — Supports sending data via forms or request bodies using files, bitmaps, byte arrays, and input streams. ([source](https://cdn.jsdelivr.net/gh/yanzhenjie/nohttp@master/README.md))

### Development Tools & Productivity

- [JSON Data Parsing](https://awesome-repositories.com/f/development-tools-productivity/code-generators/boilerplate-generators/android/json-data-parsing.md) — Parses network responses into diverse types including strings, bitmaps, JSON objects, and JSON arrays on Android. ([source](https://cdn.jsdelivr.net/gh/yanzhenjie/nohttp@master/README.md))
