3.7 KiB
3.7 KiB
Class: ProxyAgent
Extends: undici.Dispatcher
A Proxy Agent class that implements the Agent API. It allows the connection through proxy in a simple way.
new ProxyAgent([options])
Arguments:
- options
ProxyAgentOptions
(required) - It extends theAgent
options.
Returns: ProxyAgent
Parameter: ProxyAgentOptions
Extends: AgentOptions
- uri
string
(required) - It can be passed either by a string or a object containinguri
as string. - token
string
(optional) - It can be passed by a string of token for authentication. - auth
string
(deprecated) - Use token. - clientFactory
(origin: URL, opts: Object) => Dispatcher
(optional) - Default:(origin, opts) => new Pool(origin, opts)
- requestTls
BuildOptions
(optional) - Options object passed when creating the underlying socket via the connector builder for the request. See TLS. - proxyTls
BuildOptions
(optional) - Options object passed when creating the underlying socket via the connector builder for the proxy server. See TLS.
Examples:
import { ProxyAgent } from 'undici'
const proxyAgent = new ProxyAgent('my.proxy.server')
// or
const proxyAgent = new ProxyAgent({ uri: 'my.proxy.server' })
Example - Basic ProxyAgent instantiation
This will instantiate the ProxyAgent. It will not do anything until registered as the agent to use with requests.
import { ProxyAgent } from 'undici'
const proxyAgent = new ProxyAgent('my.proxy.server')
Example - Basic Proxy Request with global agent dispatcher
import { setGlobalDispatcher, request, ProxyAgent } from 'undici'
const proxyAgent = new ProxyAgent('my.proxy.server')
setGlobalDispatcher(proxyAgent)
const { statusCode, body } = await request('http://localhost:3000/foo')
console.log('response received', statusCode) // response received 200
for await (const data of body) {
console.log('data', data.toString('utf8')) // data foo
}
Example - Basic Proxy Request with local agent dispatcher
import { ProxyAgent, request } from 'undici'
const proxyAgent = new ProxyAgent('my.proxy.server')
const {
statusCode,
body
} = await request('http://localhost:3000/foo', { dispatcher: proxyAgent })
console.log('response received', statusCode) // response received 200
for await (const data of body) {
console.log('data', data.toString('utf8')) // data foo
}
Example - Basic Proxy Request with authentication
import { setGlobalDispatcher, request, ProxyAgent } from 'undici';
const proxyAgent = new ProxyAgent({
uri: 'my.proxy.server',
// token: 'Bearer xxxx'
token: `Basic ${Buffer.from('username:password').toString('base64')}`
});
setGlobalDispatcher(proxyAgent);
const { statusCode, body } = await request('http://localhost:3000/foo');
console.log('response received', statusCode); // response received 200
for await (const data of body) {
console.log('data', data.toString('utf8')); // data foo
}
ProxyAgent.close()
Closes the proxy agent and waits for registered pools and clients to also close before resolving.
Returns: Promise<void>
Example - clean up after tests are complete
import { ProxyAgent, setGlobalDispatcher } from 'undici'
const proxyAgent = new ProxyAgent('my.proxy.server')
setGlobalDispatcher(proxyAgent)
await proxyAgent.close()
ProxyAgent.dispatch(options, handlers)
Implements Agent.dispatch(options, handlers)
.