嘿,我用自證書建立了 ssl 通信。連接正常,但是當我嘗試在 postman 或我的 android 客戶端中通過 post 請求在客戶端傳遞資料時,服務器端的請求正文為空。下面是我的 nodejs 服務器代碼,感謝幫助。
const express = require('express')
const https = require('https')
const path = require('path')
const fs = require('fs')
const app = express()
app.use(express.json())
app.post('/',(req,res,next)=>
{
console.log("we got new connection")
var data =req.body
res.send(data)
})
const ssl_server = https.createServer(
{
key:fs.readFileSync(path.join(__dirname,'cert','key.pem')),
cert:fs.readFileSync(path.join(__dirname,'cert','cert.pem'))
},app)
ssl_server.listen(3443,console.log("SSl server is online!"))
uj5u.com熱心網友回復:
你正在閱讀response body。你應該看看request。
在任何情況下,除非您以某種方式決議 POST 有效負載,否則可能不會有太多合理的資料可供讀取;如果您不想自己這樣做,我會推薦 Express 庫而不是原始的 Node.js HTTP 位。
uj5u.com熱心網友回復:
這是我對我的問題的回答,就像 AKS 說的那樣,您需要決議發布請求,我將 bodyparser 添加到我的代碼中并且它起作用了。
const express = require('express')
const https = require('https')
const path = require('path')
const fs = require('fs')
const bodyParser = require('body-parser');
const app = express()
app.use(bodyParser.urlencoded({ extended: true })) // <==== parse request body as JSON
app.post('/',(req,res,next)=>
{
console.log("we got new connection")
var data =req.body
res.send(data)
})
const ssl_server = https.createServer(
{
key:fs.readFileSync(path.join(__dirname,'cert','key.pem')),
cert:fs.readFileSync(path.join(__dirname,'cert','cert.pem'))
},app)
ssl_server.listen(3443,console.log("SSl server is online!"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/312534.html
下一篇:為什么在使用ReactuseState時會在onsubmit事件上清除有效負載資料?這是對服務器端的POST請求
