HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/server/nodejs/v16.9.0/lib/node_modules/pm2/node_modules/needle/test/utils/test.js
// TODO: write specs. :)

var fs = require('fs'),
    client = require('./../../');

process.env.DEBUG = true;

var response_callback = function(err, resp, body){
	console.log(err);
	if(resp) console.log("Got status code " + resp.statusCode)
	console.log(body);
}

function simple_head(){
	client.head('http://www.amazon.com', response_callback);
}

function simple_get(){
	client.get('http://www.nodejs.org', response_callback);
}

function proxy_get(){
	client.get('https://www.google.com/search?q=nodejs', {proxy: 'http://localhost:1234'}, response_callback);
}

function auth_get(){
	client.get('https://www.twitter.com', {username: 'asd', password: '123'}, response_callback);
}

function simple_post(url){

	var data = {
		foo: 'bar',
		baz: {
			nested: 'attribute'
		}
	}

	client.post(url, data, response_callback);

}

function multipart_post(url){

	var filename = 'test_file.txt';
	var data = 'Plain text data.\nLorem ipsum dolor sit amet.\nBla bla bla.\n';
	fs.writeFileSync(filename, data);

	var black_pixel = Buffer.from("data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=".replace(/^data:image\/\w+;base64,/, ""), "base64");

	var data = {
		foo: 'bar',
		bar: 'baz',
		nested: {
			my_document: { file: filename, content_type: 'text/plain' },
			even: {
				more: 'nesting'
			}
		},
    pixel: { filename: 'black_pixel.gif', buffer: black_pixel, content_type: 'image/gif' },
    field2: {value: JSON.stringify({"json":[ {"one":1}, {"two":2} ]}), content_type: 'application/json' }
	}

	client.post(url, data, {multipart: true}, function(err, resp, body){

		console.log(err);
		console.log("Got status code " + resp.statusCode)
		console.log(body);
		fs.unlink(filename);

	});

}

switch(process.argv[2]){
	case 'head':
		simple_head();
		break;
	case 'get':
		simple_get();
		break;
	case 'auth':
		auth_get();
		break;
	case 'proxy':
		proxy_get();
		break;
	case 'post':
		simple_post(process.argv[3] || 'http://posttestserver.com/post.php');
		break;
	case 'multipart':
		multipart_post(process.argv[3] || 'http://posttestserver.com/post.php?dir=example');
		break;
	case 'all':
		simple_head();
		simple_get();
		auth_get();
		proxy_get();
		simple_post(process.argv[3] || 'http://posttestserver.com/post.php');
		multipart_post(process.argv[3] || 'http://posttestserver.com/post.php?dir=example');
		break;
	default:
		console.log("Usage: ./test.js [head|get|auth|proxy|multipart]")
}