Я хочу открыть поток HTTP / 2 и использовать этот поток для выполнения нескольких запросов HTTP / 2 POST.Каждый запрос POST будет иметь свою собственную полезную нагрузку тела.
В настоящее время у меня есть код ниже, который работает для запросов, которые не требуют полезной нагрузки, но я не уверен, как настроить его для запросов, которые требуютполезная нагрузка.
Я прочитал RFC 7540 и почти все связанные посты на SO, но мне все еще трудно писать рабочий код HTTP / 2 , используя тело полезной нагрузки .
Например:
- Использует stream.write рекомендуемый способ отправки кадров DATA, или мне следует использовать встроенную функцию, предоставляемую http2?
- Я передаю аргументы в виде открытого текста, а протокол http2 заботится о двоичном кодировании, или я сам его кодирую?
- Как мне изменить приведенный ниже код для отправки тела полезной нагрузки?
.
const http2 = require('http2')
const connection = http2.connect('https://www.example.com:443')
const stream = connection.request({
':authority':'www.example.com',
':scheme':'https',
':method': 'POST',
':path': '/custom/path',
}, { endStream: false })
stream.setEncoding('utf8')
stream.on('response', (headers) => {
console.log('RESPONSE', headers)
stream.on('data', (data) => console.log('DATA', data))
stream.on('end', () => console.log('END'))
})
stream.write(Buffer.from('POST-request-payload-body-here?'))