クラス: ClientRequest
クラス: ClientRequest
HTTP/HTTPリクエストを行います。
プロセス: Main, Utility
このクラスは 'electron' モジュールからエクスポートされません。 Electron API では、他のメソッドの戻り値としてのみ利用できます。
ClientRequest は Writable Stream インターフェースを実装しているため、 EventEmitter です。
new ClientRequest(options)
protocol、host、hostname、port や path といった options プロパティは、URL モジュールで説明されている Node.js モデルに厳密に従うようにしてください。
例えば、以下のようにすると、'github.com' に対してリクエストをしているのと同じです。
const request = net.request({
method: 'GET',
protocol: 'https:',
hostname: 'github.com',
port: 443,
path: '/'
})
インスタンスイベント
イベント: 'response'
戻り値:
responseIncomingMessage - An object representing the HTTP response message.
イベント: 'login'
戻り値:
authInfoObjectisProxybooleanschemestringhoststringportIntegerrealmstring
callbackFunctionusernamestring (任意)passwordstring (optional)
認証プロキシがユーザの資格情報を要求しているときに発生します。
callback ファンクションは、ユーザの資格情報と共にコールバックされます。
usernamestringpasswordstring
request.on('login', (authInfo, callback) => {
callback('username', 'password')
})
空の資格情報を指定すると、リクエストがキャンセルされ、レスポンスオブジェクトで認証エラーが返ります。
request.on('response', (response) => {
console.log(`STATUS: ${response.statusCode}`)
response.on('error', (error) => {
console.log(`ERROR: ${JSON.stringify(error)}`)
})
})
request.on('login', (authInfo, callback) => {
callback()
})
イベント: 'finish'
request のデータの最後のチャンクが request オブジェクトに書き込まれた直後に発生します。
イベント: 'abort'
request が中止されたときに発生します。 request が既に閉じられている場合、 abort イベントは発生しません。
イベント: 'error'
戻り値:
errorError - 失敗に関するいくつかの情報を提供するエラーオブジェクト。
net モジュールがネットワークリクエストを行うのに失敗するときに発生します。 通常、request オブジェクトが error イベントを発生させるとき、続いて close イベントが発生し、レスポンスオブジェクトが返ることはありません。
イベント: 'close'
HTTPのリクエストからレスポンスまでのやり取りの最後のイベントして発生します。 close イベントは、request または response オブジェクトのいずれでもこれ以上のイベントが発生しないことを示します。
イベント: 'redirect'
戻り値:
statusCodeIntegermethodstringredirectUrlstringresponseHeadersRecord<string, string[]>
サーバーがリダイレクトのレスポンス (301 Moved Permanently など) を返すときに生成されます。 request.followRedirect を呼び出すと、リダイレクトが続行されます。 このイベントを処理する場合、request.followRedirect を 同期的に で呼び出す必要があります。でなければ、リクエストはキャンセルされます。
インスタンスプロパティ
request.chunkedEncoding
リクエストがHTTPのチャンク形式転送エンコーディングを使用するかどうかを指定する boolean 型。 省略値は、false です。 プロパティは読み書き可能ですが、HTTPヘッダーがまだ送信されていない最初の書き込み操作の前でしか設定できません。 最初の書き込みの後、chunkedEncoding プロパティを設定しようとすると、エラーがスローされます。
Electronのプロセスメモリの中で内部的にバッファする代わりにデータが細切れにストリーミングされるため、大きなリクエストボディを送信する必要がある場合、チャンク形式のエンコーディングを使用することを強く推奨します。
インスタンスメソッド
request.setHeader(name, value)
namestring - 追加する HTTP ヘッダーの名前。valuestring - 追加する HTTP ヘッダーの値。
別の HTTP ヘッダーを追加します。 ヘッダー名は小文字にされることなく、そのまま出力されます。 最初の書き込み前のみ呼び出すことができます。 最初の書き込み後にこのメソッドを呼び出すとエラーがスローされます。 渡された値が string 型でない場合、最終的な値を得るために toString() メソッドが呼び出されます。
特定のヘッダーはアプリによって設定されないように制限されています。 これらのヘッダは以下にリストアップしています。 制限付きヘッダーの詳細は、Chromium のヘッダー ユーティリティ を参照してください。
Content-LengthHostTrailerまたはTeUpgradeCookie2Keep-AliveTransfer-Encoding
さらに、Connection ヘッダを upgrade の値に設定することも禁止されています。
request.getHeader(name)
namestring - 追加したヘッダーの名前を指定します。
戻り値 string - 先に設定した追加したヘッダーの名前の値。
request.removeHeader(name)
namestring - 追加したヘッダーの名前を指定します。
以前に設定した追加ヘッダーの名前を削除します。 このメソッドは、最初の書き込み前のみ呼び出すことができます。 最初の書き込み後にこのメソッドを呼び出すとエラーがスローされます。
request.write(chunk[, encoding][, callback])
chunk(string | Buffer) - リクエストボディのデータのチャンク。 文字列の場合、指定されたエンコーディングで Buffer に変換されます。encodingstring (任意) - 文字列のチャンクを Buffer オブジェクトへ変換する際に使用されます。 既定値は 'utf-8' です。callbackFunction (任意) - 書き込み操作の終了後に呼び出されます。
callback は、Node.jsのAPIとの類似性を維持する目的で導入された本質的にはダミーのファンクションです。 chunk コンテンツがChromiumのネットワークレイヤーに到達した後、すぐに非同期で呼び出されます。 Node.jsの実装とは違って、callback が呼び出される前に chunk コンテンツが書き込まれていることは保証されません。
リクエストボディにデータのチャンクを追加します。 最初の書き込み操作では、リクエストヘッダーも出力される可能性があります。 最初の書き込み操作の後、カスタムヘッダーを追加したり、削除したりすることはできません。
request.end([chunk][, encoding][, callback])
chunk(string | Buffer) (任意)encodingstring (任意)callbackFunction (任意)
戻り値 this.
リクエストデータの最終チャンクを送信します。 後続の書き込みまたは終了の操作は許可されません。 終了操作の直後に finish イベントが発生します。
request.abort()
現在進行中のHTTPトランザクションをキャンセルします。 リクエストで既に close イベントが発生していた場合、中止操作は無効になります。 そうでない場合、進行中のイベントでは、abort と close イベントが発生します。 さらに、処理中のレスポンスオブジェクトがある場合、aborted イベントが発生します。
request.followRedirect()
保留中のリダイレクトを続行します。 'redirect' イベントの間のみ呼び出せます。
request.getUploadProgress()
戻り値 Object:
activeboolean - リクエストが現在アクティブかどうか。 これが false の場合、他のプロパティは設定されません。startedboolean - アップロードが開始されたかどうか。 これが false の場合、currentとtotalは 0 になります。currentInteger - どのくらいアップロードしたかのバイト数。totalInteger - このリクエストでアップロードされるバイト数。
このメソッドを POST リクエストと組み合わせて使用すると、ファイルのアップロードや他のデータ転送の進行状況を取得できます。