# request/request-promise

**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/request-request-promise).**

4,722 stars · 286 forks · JavaScript · ISC

## Links

- GitHub: https://github.com/request/request-promise
- awesome-repositories: https://awesome-repositories.com/repository/request-request-promise.md

## Description

This project is a promise-based HTTP client for Node.js that wraps callback-style network requests into promise objects. It serves as a library for sending JSON, form data, and multipart requests to web servers while managing asynchronous flow control.

The library utilizes a specialized Bluebird promise implementation to handle request and response lifecycles. It includes a session manager that uses a cookie jar to maintain and transmit state across multiple network calls.

The tool covers a broad range of network capabilities, including REST API integration, response data transformation, and full HTTP response capture. It provides mechanisms for request cancellation, configurable error handling for non-success status codes, and network traffic debugging.

## Tags

### Networking & Communication

- [Promise-Based HTTP Clients](https://awesome-repositories.com/f/networking-communication/promise-based-http-clients.md) — Wraps callback-style HTTP requests into promise objects to manage asynchronous network flow without nesting.
- [HTTP Cookie Management](https://awesome-repositories.com/f/networking-communication/http-clients/http-cookie-management.md) — Manages session state across multiple network calls using a cookie jar to handle session cookies.
- [Request Body Encoders](https://awesome-repositories.com/f/networking-communication/multipart-form-encoding/request-body-encoders.md) — Provides mechanisms to encode request bodies as JSON, URL-encoded forms, or multipart data for standard web transfers. ([source](https://github.com/request/request-promise#readme))
- [Node.js HTTP Clients](https://awesome-repositories.com/f/networking-communication/node-js-http-clients.md) — Serves as a comprehensive Node.js library for sending JSON, form data, and multipart requests to web servers.
- [HTTP Response Processors](https://awesome-repositories.com/f/networking-communication/http-response-processors.md) — Captures full response objects and transforms raw body data into specific formats for application use.
- [Request Cancellations](https://awesome-repositories.com/f/networking-communication/network-request-clients/request-cancellations.md) — Provides the ability to abort active network requests to stop associated processes from resolving or rejecting. ([source](https://github.com/request/request-promise#readme))

### Development Tools & Productivity

- [Asynchronous HTTP Calls](https://awesome-repositories.com/f/development-tools-productivity/request-scripting-environments/asynchronous-http-calls.md) — Enables making asynchronous HTTP requests using promises instead of traditional callbacks for simplified error and response handling. ([source](https://github.com/request/request-promise/blob/master/package.json))
- [REST API Integrations](https://awesome-repositories.com/f/development-tools-productivity/rest-api-integrations.md) — Sending and receiving JSON data through HTTP requests to communicate with web services and external application interfaces.
- [API Error Handling](https://awesome-repositories.com/f/development-tools-productivity/api-error-handling.md) — Allows configuration to determine if the promise should reject based on HTTP status codes or only on network failures. ([source](https://github.com/request/request-promise/blob/master/README.md))

### Security & Cryptography

- [Session & Cookie Handlers](https://awesome-repositories.com/f/security-cryptography/session-cookie-handlers.md) — Uses a cookie jar to store and send cookies across multiple requests to maintain session state. ([source](https://github.com/request/request-promise/blob/master/README.md))
- [Web Session Management](https://awesome-repositories.com/f/security-cryptography/web-session-management.md) — Maintains state across multiple network calls by storing and sending cookies using a cookie jar.

### Testing & Quality Assurance

- [Callback-to-Promise Converters](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/service-testing/asynchronous/callback-to-promise-converters.md) — Transforms standard Node.js error-first callbacks into promise resolve and reject states for consistent async handling.

### Web Development

- [Request Body Attachers](https://awesome-repositories.com/f/web-development/request-body-handling/request-body-alterations/request-body-attachers.md) — Transforms JavaScript objects into JSON or multipart form data strings before transmission over the network.
- [API Response Transformations](https://awesome-repositories.com/f/web-development/api-response-transformations.md) — Implements custom functions to transform raw response bodies into different formats before they are used by the application. ([source](https://github.com/request/request-promise#readme))

### Programming Languages & Runtimes

- [Configurable Promise Resolutions](https://awesome-repositories.com/f/programming-languages-runtimes/manual-promise-resolution/configurable-promise-resolutions.md) — Allows callers to decide whether non-success HTTP status codes trigger a promise rejection or a resolution.

### System Administration & Monitoring

- [Full Response Captures](https://awesome-repositories.com/f/system-administration-monitoring/api-response-captures/full-response-captures.md) — Enables returning the complete HTTP response object, including status codes and headers, instead of only the response body. ([source](https://github.com/request/request-promise/blob/master/README.md))
