Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
81141 views

Authentication

OAuth

OAuth1.0 Refresh Token

request.post('https://api.login.yahoo.com/oauth/v2/get_token', { oauth: { consumer_key: '...', consumer_secret: '...', token: '...', token_secret: '...', session_handle: '...' } }, function (err, res, body) { var result = require('querystring').parse(body) // assert.equal(typeof result, 'object') })

OAuth2 Refresh Token

request.post('https://accounts.google.com/o/oauth2/token', { form: { grant_type: 'refresh_token', client_id: '...', client_secret: '...', refresh_token: '...' }, json: true }, function (err, res, body) { // assert.equal(typeof body, 'object') })

Multipart

multipart/form-data

Flickr Image Upload

request.post('https://up.flickr.com/services/upload', { oauth: { consumer_key: '...', consumer_secret: '...', token: '...', token_secret: '...' }, // all meta data should be included here for proper signing qs: { title: 'My cat is awesome', description: 'Sent on ' + new Date(), is_public: 1 }, // again the same meta data + the actual photo formData: { title: 'My cat is awesome', description: 'Sent on ' + new Date(), is_public: 1, photo:fs.createReadStream('cat.png') }, json: true }, function (err, res, body) { // assert.equal(typeof body, 'object') })

Streams

POST data

Use Request as a Writable stream to easily POST Readable streams (like files, other HTTP requests, or otherwise).

TL;DR: Pipe a Readable Stream onto Request via:

READABLE.pipe(request.post(URL));

A more detailed example:

var fs = require('fs') , path = require('path') , http = require('http') , request = require('request') , TMP_FILE_PATH = path.join(path.sep, 'tmp', 'foo') ; // write a temporary file: fs.writeFileSync(TMP_FILE_PATH, 'foo bar baz quk\n'); http.createServer(function(req, res) { console.log('the server is receiving data!\n'); req .on('end', res.end.bind(res)) .pipe(process.stdout) ; }).listen(3000).unref(); fs.createReadStream(TMP_FILE_PATH) .pipe(request.post('http://127.0.0.1:3000')) ;