1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-03 17:08:35 -05:00
This commit is contained in:
Yoshiya Hinosawa 2024-09-26 12:53:39 +09:00
parent 9c1b39ba2d
commit 2f9cdaa67d
No known key found for this signature in database
GPG key ID: 9017DB4559488785
2 changed files with 16 additions and 7 deletions

View file

@ -419,6 +419,14 @@ class ClientRequest extends OutgoingMessage {
_writeHeader() {
const url = this._createUrlStrFromOptions();
const headers = [];
for (const key in this[kOutHeaders]) {
if (Object.hasOwn(this[kOutHeaders], key)) {
const entry = this[kOutHeaders][key];
this._processHeader(headers, entry[0], entry[1], false);
}
}
if (
this.method === "POST" || this.method === "PATCH" || this.method === "PUT"
) {
@ -447,6 +455,10 @@ class ClientRequest extends OutgoingMessage {
await op_node_http_wait_for_connection(connRid);
this.emit("requestReady");
const res = await op_node_http_await_response(rid);
if (this._timeout) {
this._timeout.removeEventListener("abort", this._timeoutCb);
webClearTimeout(this._timeout[timerId]);
}
const incoming = new IncomingMessageForClient(this.socket);
incoming.req = this;
this.res = incoming;
@ -659,11 +671,6 @@ class ClientRequest extends OutgoingMessage {
}
this.destroyed = true;
const rid = this._client?.[internalRidSymbol];
if (rid) {
core.tryClose(rid);
}
// Request might be closed before we actually made it
if (this._req !== undefined && this._req.cancelHandleRid !== null) {
core.tryClose(this._req.cancelHandleRid);

View file

@ -524,7 +524,8 @@ Deno.test("[node/http] send request with chunked body", async () => {
};
const abortController = new AbortController();
const servePromise = Deno.serve({
hostname,
// TODO(kt3k): Enable this line for better compatibility with Node.js
// hostname,
port,
signal: abortController.signal,
onListen: undefined,
@ -571,7 +572,8 @@ Deno.test("[node/http] send request with chunked body as default", async () => {
};
const abortController = new AbortController();
const servePromise = Deno.serve({
hostname,
// TODO(kt3k): Enable this line for better compatibility with Node.js
// hostname,
port,
signal: abortController.signal,
onListen: undefined,