node.js - 如何在没有正文的情况下执行 request.write(body)?
问题描述
我正在使用如下所示的代码。但是,我想在查询字符串中包含正文(我可以做得很好)-但是,我不确定如何重组https.request
以删除request.write(body)
-仅使用request.write()
不起作用,因为它需要一个字符串。
有人可以帮忙吗?
谢谢
var body = JSON.stringify( json.text );
const params = {
'q': body,
};
var requestUrl = url.parse( URL + queryStringify(params) );
const requestOptions = {
hostname: requestUrl.hostname,
path: requestUrl.path,
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
};
var request = https.request(requestOptions, function(res) {
var data = "";
res.on('data', function (chunk) {
//do stuff
});
res.on('end', function () {
//do stuff
});
});
request.write(body);
request.end();
解决方案
为此,您可以在path
字段中设置参数,使用如下查询字符串:
将您的查询字符串参数设置为 requestOptions
const querystring = require('querystring');
requestOptions.path = `/your/Path?${querystring.stringify({firstName: 'John', lastName: 'doe'})}`;
// Result is '/your/Path?firstName=John&lastName=doe'
然后,做你的要求
var request = https.request(requestOptions, function(res) {
res.on('data', function(chunk) {
// Do stuff
});
res.on('end', function() {
// Do stuff
});
});
request.on('error', function (err) {
// Throw err
});
request.end();
希望能帮助到你。
推荐阅读
- arrays - Flutter:如何将数组数据从 json Future< 传递到 Widget
- javascript - S3 使用 aws-sdk v3 为 PutObject 命令预签名 url 提供 SignatureDoesNotMatch 错误
- python - 尝试将自定义表示器添加到 Python yaml 模块的意外行为?
- c++ - 创建“xxx”的定义:无法创建函数“xxx”。函数签名已复制到剪贴板
- java - Jetty 发出重定向时显示的 IP 地址
- javascript - ReactNative - 使用 i18n 设置首选应用程序语言
- python-3.x - 如何在 matplotlib 和 python3 中绘制一条环绕 x 轴的线?
- intellij-idea - IntelliJ 全局库和全局 VM 选项问题
- python - 如何在此数据透视表中应用 Jaccard 相似度以进行基于项目的电影推荐?
- c - 逐个删除单词中的元音