クラス: ClientRequest
クラス: ClientRequest
HTTP/HTTPSリクエストを行います。
プロセス: メイン、ユーティリティ
このクラスは`'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'
戻り値
response
IncomingMessage - HTTPレスポンスメッセージを表すオブジェクト。
イベント: 'login'
戻り値
authInfo
ObjectisProxy
booleanscheme
stringhost
stringport
Integerrealm
string
callback
Functionusername
string (オプション)password
string (オプション)
認証プロキシがユーザー資格情報を要求している場合に発生します。
callback
関数は、ユーザー資格情報を用いてコールバックされることが期待されます。
username
stringpassword
string
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'
戻り値
error
Error - 失敗に関する情報を提供するエラーオブジェクト。
net
モジュールがネットワークリクエストの発行に失敗した場合に発生します。通常、request
オブジェクトがerror
イベントを発生させると、その後close
イベントが発生し、レスポンスオブジェクトは提供されません。
イベント: 'close'
HTTPリクエストとレスポンスのトランザクションの最後のイベントとして発生します。close
イベントは、request
またはresponse
オブジェクトでそれ以上のイベントが発生しないことを示します。
イベント: 'redirect'
戻り値
statusCode
Integermethod
stringredirectUrl
stringresponseHeaders
Record<string, string[]>
サーバーがリダイレクトレスポンス(例:301 Moved Permanently)を返した場合に発生します。request.followRedirect
を呼び出すと、リダイレクトが続行されます。このイベントが処理された場合、request.followRedirect
を**同期的に**呼び出す必要があります。そうでない場合、リクエストはキャンセルされます。
インスタンスプロパティ
request.chunkedEncoding
リクエストがHTTPチャンク転送エンコーディングを使用するかどうかを指定するboolean
値。デフォルトはfalseです。このプロパティは読み取り可能で書き込み可能ですが、HTTPヘッダーはまだワイヤー上にないため、最初の書き込み操作の前にのみ設定できます。最初の書き込み後にchunkedEncoding
プロパティを設定しようとすると、エラーが発生します。
大量のリクエストボディを送信する必要がある場合は、チャンクエンコーディングを使用することを強くお勧めします。データはElectronプロセスのメモリ内で内部的にバッファリングされるのではなく、小さなチャンクでストリーミングされます。
インスタンスメソッド
request.setHeader(name, value)
name
string - 追加のHTTPヘッダー名。value
string - 追加のHTTPヘッダー値。
追加のHTTPヘッダーを追加します。ヘッダー名は小文字に変換せずにそのまま発行されます。最初の書き込みの前にのみ呼び出すことができます。最初の書き込み後にこのメソッドを呼び出すと、エラーが発生します。渡された値がstring
でない場合、そのtoString()
メソッドが呼び出されて最終的な値が取得されます。
アプリによる設定が制限されているヘッダーがあります。これらのヘッダーは以下にリストされています。制限されたヘッダーの詳細については、Chromiumのヘッダーユーティリティを参照してください。
Content-Length
Host
Trailer
またはTe
Upgrade
Cookie2
Keep-Alive
転送エンコーディング
さらに、Connection
ヘッダーをupgrade
に設定することも許可されていません。
request.getHeader(name)
name
文字列 - 追加のヘッダー名を指定します。
戻り値 string
- 以前設定された追加ヘッダーの値。
request.removeHeader(name)
name
文字列 - 追加のヘッダー名を指定します。
以前設定された追加ヘッダーを削除します。このメソッドは、最初の書き込みの前にのみ呼び出すことができます。最初の書き込み後に呼び出すと、エラーが発生します。
request.write(chunk[, encoding][, callback])
chunk
(文字列 | Buffer) - リクエストボディのデータのチャンク。文字列の場合、指定されたエンコーディングを使用してBufferに変換されます。encoding
文字列 (オプション) - 文字列チャンクをBufferオブジェクトに変換するために使用されます。デフォルトは'utf-8'です。callback
関数 (オプション) - 書き込み操作が終了した後に呼び出されます。
callback
は、本質的にNode.js APIとの類似性を維持するために導入されたダミー関数です。chunk
の内容がChromiumネットワーク層に配信された後、次のティックで非同期的に呼び出されます。Node.jsの実装とは異なり、callback
が呼び出される前にchunk
の内容がワイヤーにフラッシュされる保証はありません。
リクエストボディにデータチャンクを追加します。最初の書き込み操作によって、リクエストヘッダーがワイヤー上に発行される可能性があります。最初の書き込み操作後、カスタムヘッダーを追加または削除することはできません。
request.end([chunk][, encoding][, callback])
chunk
(文字列 | Buffer) (オプション)encoding
文字列 (オプション)callback
関数 (オプション)
戻り値 this
。
リクエストデータの最後のチャンクを送信します。その後、書き込みまたは終了操作は許可されません。finish
イベントは、終了操作の直後に発生します。
request.abort()
進行中のHTTPトランザクションをキャンセルします。リクエストがすでにclose
イベントを発生させている場合、中止操作は効果がありません。それ以外の場合は、進行中のイベントがabort
およびclose
イベントを発生させます。さらに、進行中のレスポンスオブジェクトがある場合は、aborted
イベントが発生します。
request.followRedirect()
保留中のリダイレクトを続行します。'redirect'
イベント中にのみ呼び出すことができます。
request.getUploadProgress()
戻り値 Object
active
ブール値 - リクエストが現在アクティブかどうか。これがfalseの場合、他のプロパティは設定されません。started
ブール値 - アップロードが開始されたかどうか。これがfalseの場合、current
とtotal
の両方が0に設定されます。current
整数 - これまでにアップロードされたバイト数。total
整数 - このリクエストでアップロードされるバイト数。
このメソッドは、POST
リクエストと組み合わせて、ファイルアップロードまたはその他のデータ転送の進捗状況を取得するために使用できます。