Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: Add URL instance as options argument with http.request and https… #13405

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 26 additions & 4 deletions doc/api/http.md
Original file line number Diff line number Diff line change
Expand Up @@ -1568,9 +1568,13 @@ added to the [`'request'`][] event.
## http.get(options[, callback])
<!-- YAML
added: v0.3.6
changes:
- version: v7.5.0
pr-url: https://github.com/nodejs/node/pull/10638
description: The `options` parameter can be a WHATWG `URL` object.
-->

* `options` {Object | string} Accepts the same `options` as
* `options` {Object | string | URL} Accepts the same `options` as
[`http.request()`][], with the `method` always set to `GET`.
Properties that are inherited from the prototype are ignored.
* `callback` {Function}
Expand Down Expand Up @@ -1636,9 +1640,13 @@ requests.
## http.request(options[, callback])
<!-- YAML
added: v0.3.6
changes:
- version: v7.5.0
pr-url: https://github.com/nodejs/node/pull/10638
description: The `options` parameter can be a WHATWG `URL` object.
-->

* `options` {Object | string}
* `options` {Object | string | URL}
* `protocol` {string} Protocol to use. Defaults to `http:`.
* `host` {string} A domain name or IP address of the server to issue the
request to. Defaults to `localhost`.
Expand Down Expand Up @@ -1677,8 +1685,9 @@ added: v0.3.6
Node.js maintains several connections per server to make HTTP requests.
This function allows one to transparently issue requests.

`options` can be an object or a string. If `options` is a string, it is
automatically parsed with [`url.parse()`][].
`options` can be an object, a string, or a [`URL`][] object. If `options` is a
string, it is automatically parsed with [`url.parse()`][]. If it is a [`URL`][]
object, it will be automatically converted to an ordinary `options` object.

The optional `callback` parameter will be added as a one time listener for
the [`'response'`][] event.
Expand Down Expand Up @@ -1750,13 +1759,26 @@ There are a few special headers that should be noted.
* Sending an Authorization header will override using the `auth` option
to compute basic authentication.

Example using options from [`URL`][]:

```js
const URL = require('url').URL;

const options = new URL('http://abc:xyz@example.com');

const req = http.request(options, (res) => {
// ...
});
```

[`'checkContinue'`]: #http_event_checkcontinue
[`'listening'`]: net.html#net_event_listening
[`'request'`]: #http_event_request
[`'response'`]: #http_event_response
[`Agent`]: #http_class_http_agent
[`EventEmitter`]: events.html#events_class_eventemitter
[`TypeError`]: errors.html#errors_class_typeerror
[`URL`]: url.html#url_the_whatwg_url_api
[`agent.createConnection()`]: #http_agent_createconnection_options_callback
[`destroy()`]: #http_agent_destroy
[`http.Agent`]: #http_class_http_agent
Expand Down
35 changes: 29 additions & 6 deletions doc/api/https.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,15 +115,20 @@ See [`http.listen()`][] for details.
## https.get(options[, callback])
<!-- YAML
added: v0.3.6
changes:
- version: v7.5.0
pr-url: https://github.com/nodejs/node/pull/10638
description: The `options` parameter can be a WHATWG `URL` object.
-->
- `options` {Object | string} Accepts the same `options` as
- `options` {Object | string | URL} Accepts the same `options` as
[`https.request()`][], with the `method` always set to `GET`.
- `callback` {Function}

Like [`http.get()`][] but for HTTPS.

`options` can be an object or a string. If `options` is a string, it is
automatically parsed with [`url.parse()`][].
`options` can be an object, a string, or a [`URL`][] object. If `options` is a
string, it is automatically parsed with [`url.parse()`][]. If it is a [`URL`][]
object, it will be automatically converted to an ordinary `options` object.

Example:

Expand Down Expand Up @@ -153,8 +158,12 @@ Global instance of [`https.Agent`][] for all HTTPS client requests.
## https.request(options[, callback])
<!-- YAML
added: v0.3.6
changes:
- version: v7.5.0
pr-url: https://github.com/nodejs/node/pull/10638
description: The `options` parameter can be a WHATWG `URL` object.
-->
- `options` {Object | string} Accepts all `options` from [`http.request()`][],
- `options` {Object | string | URL} Accepts all `options` from [`http.request()`][],
with some differences in default values:
- `protocol` Defaults to `https:`
- `port` Defaults to `443`.
Expand All @@ -168,8 +177,9 @@ The following additional `options` from [`tls.connect()`][] are also accepted wh
custom [`Agent`][]:
`pfx`, `key`, `passphrase`, `cert`, `ca`, `ciphers`, `rejectUnauthorized`, `secureProtocol`, `servername`

`options` can be an object or a string. If `options` is a string, it is
automatically parsed with [`url.parse()`][].
`options` can be an object, a string, or a [`URL`][] object. If `options` is a
string, it is automatically parsed with [`url.parse()`][]. If it is a [`URL`][]
object, it will be automatically converted to an ordinary `options` object.

Example:

Expand Down Expand Up @@ -235,7 +245,20 @@ const req = https.request(options, (res) => {
});
```

Example using options from [`URL`][]:

```js
const URL = require('url').URL;

const options = new URL('https://abc:xyz@example.com');

const req = https.request(options, (res) => {
// ...
});
```

[`Agent`]: #https_class_https_agent
[`URL`]: url.html#url_the_whatwg_url_api
[`http.Agent`]: http.html#http_class_http_agent
[`http.Server#keepAliveTimeout`]: http.html#http_server_keepalivetimeout
[`http.Server#setTimeout()`]: http.html#http_server_settimeout_msecs_callback
Expand Down