Skip to content

requestsvsneedle

ISC 103 7 3,501
12.7 thousand (month) Oct 06 2013 v2.0.5(4 months ago)
1,567 4 81 MIT
3.2.0(3 months ago) Dec 11 2011 21.3 million (month)

PHP library "Requests" is an HTTP library written in PHP, for making HTTP requests. It's heavily inspired by a popular Python library called Requests and aims for the same goals of simplifying HTTP client complexities.

It abstracts the complexities of making requests behind a simple API so that you can focus on interacting with services and consuming data in your application.

Requests allows you to send HTTP/1.1 HEAD, GET, POST, PUT, DELETE, and PATCH HTTP requests. You can add headers, form data, multipart files, and parameters with basic arrays, and access the response data in the same way.

Requests uses cURL and fsockopen, depending on what your system has available, but abstracts all the nasty stuff out of your way, providing a consistent API.

Features:

  • International Domains and URLs
  • Browser-style SSL Verification
  • Basic/Digest Authentication
  • Automatic Decompression
  • Connection Timeouts

needle is an HTTP client library for Node.js that provides a simple, flexible, and powerful API for making HTTP requests. It supports all major HTTP methods and has a clean and easy-to-use interface for handling responses and errors.

Example Use


require 'vendor/autoload.php';
use Requests;

// make GET request
$response = Requests::get('https://httpbin.org/get');
echo $response->status_code;

// make POST request
$data = array('name' => 'Bob', 'age' => 35);
$options = array('auth' => array('user', 'pass'));
$response = Requests::post('https://httpbin.org/post', array(), $data, $options);
echo $response->status_code;
const needle = require('needle');

// needle supports both Promises and async/await
needle.get('https://httpbin.org/get', (err, res) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log(res.body);
});

const response = await needle.get('https://httpbin.org/get')

// concurrent requests can be sent using Promise.all
const results = await Promise.all([
  needle.get('http://httpbin.org/html'),
  needle.get('http://httpbin.org/html'),
  needle.get('http://httpbin.org/html'),
])

// POST requests
const data = { name: 'John Doe' };
await needle.post('https://api.example.com', data)

// proxy
const options = {
    proxy: 'http://proxy.example.com:8080'
};
await needle.get('https://httpbin.org/ip', options)

// headers and cookies
const options = {
  headers: {
      'Cookie': 'myCookie=123',
      'X-My-Header': 'myValue'
  }
};
await needle.get('https://httpbin.org/headers', options)

Alternatives / Similar