Articles of http

如何在HTTP请求中发送缓冲区?

我在内存中有一个文件(缓冲区) – 文件系统上没有文件。 我想发送缓冲区到另一个会谈HTTP的服务器。 例如,某些API A在内存中创build一个文件, SignServer处理这些文件,并用一个新的缓冲区进行响应。 我的API从A获取文件并将其提供给SignServer。 我尝试以多种方式将文件发送到SignServer,但它始终以状态400响应(请求中缺less字段“数据”)。 我试过的: var http = require('http'); var querystring = require('querystring'); var data = querystring.stringify({ workerName: 'PDFSigner', data: file_buffer }); var request = new http.ClientRequest({ hostname: 'localhost', port: 8080, path: '/signserver/process', method: 'GET', headers: { 'Content-Type': 'application/x-www-form-urlencoded', // I also tried 'multipart/form-data' 'Content-Length': Buffer.byteLength(data) } }); request.end(data); 我试图打印data […]

在Socket.io中与HTTP通信TCP获取TypeError:无法读取未定义的属性“emit”

尝试与HTTP服务器通信TCP服务器 我的TCP端口是4040,HTTP端口是3000 我正在将在TCP服务器上收到的数据传递给HTTP服务器 在TCP端口上收到的数据显示在控制台窗口上,我试图通过将数据存储在全局variables中将此数据传递给HTTP,以便我可以将其显示在网页上。 谢谢 :) 服务器代码: enter code here var http = require('http').createServer(httpHandler); var net = require('net'); var app = require('express')(); <!– These are mandatory variables –> var http = require('http').Server(app); var io = require('socket.io')(http); var sockets = []; var HOST = 'localhost'; var PORT = 4040; global.MYVAR = "Hello world"; global.MYVAR2 = "Hello […]

有人可以解释ENOBUFS错误吗?

我正在调用Windows 7 64位操作系统上包含大量数据的数据库。 由于呼叫排队,我得到的错误(第一次错误后的HTTP调用): Error: connect ENOBUFS *omitted* – Local (undefined:undefined) 从我的谷歌search我已经了解到,这个错误意味着我的缓冲区已经变得太大,我的系统的内存不能再处理缓冲区的大小。 但是我不明白这是什么意思。 我正在使用node.js与HTTPS库来处理我的请求。 当请求排队,套接字打开时,缓冲区的大小分配在RAM中? 什么可以让缓冲区扩大到更大的尺寸? 这仅仅是一个硬件限制吗? 我也读过一些操作系统能够比其他操作系统更好地处理缓冲区的大小。 这是这种情况吗? 如果是这样,哪个操作系统更适合运行需要通过HTTPS请求获取大量数据的节点脚本? 以下是我如何处理我的请求。 for (let j = 0; j < dataQueries; j++) { getData(function()) } function getData(callback){ axios.get(url, config) .then((res) => { // parse res callback(parsedRes(res)) }).catch(function(err) { console.log("Spooky problem alert! : " + err); }) } […]

NodeJS:Stream.pipe(stream)工作,但Stream.read()不

我是NodeJS的新手,我基本上想做的是通过HTTP将.pdf上传到我的服务器。 我正在为Content-Type multipart / form-data使用POST rquest。 在NodeJS中,我使用多方来parsing我的请求。 有趣的是,当我想访问我的请求的表单数据部分,在我的情况下,这是一个JSON对象,当我pipe()从多方到标准输出的stream,但是当我读()stream,我只得到null。 这是我的代码(可能)重要的一部分: form.on('part', (part) => { // part is the Stream returned by multiparty if(!part.filename) { // only fields, not files console.log(part.read()); // output is null part.pipe(process.stdout); // output is my JSON object part.resume(); } } 我没有得到任何错误。 我很抱歉,因为我犯了一个真正的转储错误… 提前致谢, 路易斯!

如何使用Express API发送10x响应?

我正在实施早期的信息反馈。 这是我试图用来优化h2o的推送响应function的function(Ctrl + F用于服务器推送) 。 我正在寻找一个理智的快速API,以便像这样提前刷新100个响应: HTTP/1.1 100 Continue Link: </assets/layout.css>; rel=preload; as=style … HTTP/1.1 200 OK …. 但是很遗憾无法find它。 我还查找了适当的Node Response API,但我唯一能find的就是复制粘贴节点的writeContinue内部解决scheme,如下所示: const common = require('_http_common') const { CRLF } = common let links = [] // fill up links const earlyResponse = 'HTTP/1.1 100 Continue' + CRLF + links.map(link => `Link: ${link}`).join(CRLF) + CRLF […]

在Angular 2 Firebase App中的net :: ERR_CONNECTION_CLOSED

我在DigitalOcean小滴和Firebase中的Angular App上托pipe了我的Node应用程序和MongoDB。 我可以连接到Postman的Node后端,也可以从我在端口4200本地运行的Angular App连接。但是,当我使用Firebase中托pipe的Angular应用连接到DO Droplet的后端时,Chrome控制台中出现此错误。 我已经在Node应用程序的CORS白名单数组中添加了Firebase应用程序的链接,并在environment.prod.ts文件中添加了后端url backednUrl: 'https://***.**.**.***:3000' 在特定的错误日志没有说太多。 我该如何解决这个错误? 这是因为任何SSL或HTTPS问题?

使用http获取html表单数据

我需要从简单的HTML表单(代码如下)获取数据,并将其发送到API( http://netology.tomilomark.ru/doc/#api-ND ),使哈希出来。 这里是html表单代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Form</title> </head> <body> <form action="/sendForm"> Name:<br> <input type="text" name="firstName" value=""> <br> Surname:<br> <input type="text" name="lastName" value=""> <br><br> <input type="submit" value="Send"> </form> </body> 这就是我在服务器端所得到的: "use strict"; const http = require("http"); const fs = require("fs"); const PORT = 3000; let resObject = {}; let hash; // […]

如何使用数据库callback函数redirect用户 – HAPI

我希望我的用户被显示一个加载图标,直到数据库响应,然后被redirect到正确的页面。 我的代码是沿着的: // handler function handler(request, reply) { reply.view('loading') // show loading with css // do database stuff… // database callback function function db_callback_function() { reply.redirect('user/page') // after db responds, redirect. } } Hapi说我只能使用一次回复界面: Unhandled promise rejection (rejection id: 1): Error: reply interface called twice 那么如何在数据库加载后redirect我的用户呢? 编辑:我知道我需要使用前端显示加载器。 我只是不知道我的后端会告诉我的前端何时redirect。

如何将一个POST请求转发到两个外部URL?

我们使用的一个SaaS提供商有一个webook字段,但只允许input一个url。 事实上,我们需要将这个webhook发送到两个分析服务,所以我需要找出一个方法来编写一个自定义端点,将整个请求转发到我们需要的其他端点(目前为2个)。 用node和express做这个最简单的方法是什么? 如果我没有弄错,简单的redirect不适用于多个POST,对吧? 我不确定头文件甚至是请求内容是什么样子的,但是如果auth在头文件中,它需要尽可能地保留。 这是我迄今为止,但它是远远不够完整: app.post('/', (req, res) => { console.log('Request received: ', req.originalUrl) const forwardRequests = config.forwardTo.map(url => { return new Promise((resolve, reject) => { superagent .post(url) .send(req) .end((endpointError, endpointResponse) => { if (endpointError) { console.error(`Received error from forwardTo endpoint (${url}): `, endpointError) reject(endpointError) } else { resolve(endpointResponse) } }) }) }) Promise.all(forwardRequests) […]

nodejspipe道https响应request.post和写入文件

我正在做HTTP代理程序,检查HTTP URL,如果它是下载链接(内容types:八位字节stream),我会得到响应,并通过使用request.post和其他计算机下载文件与其他计算机响应中继该响应由http代理给出。 假设networking代理计算机是A.并且它是A. 192.168.5.253的代码的一部分 if(contentType && (contentType== "application/octet-stream" || contentType == "application/gzip")){ console.log("remoteRes##app",remoteRes); let filepath = req.url.split('/'); let FileName = getFilename(remoteRes, filepath); let writeStream = fs.createWriteStream(FileName); /*remoteRes is octect-stream response. I can get file buffer If I use remoteRes.on(data, chunk => {…})*/ remoteRes.pipe(writeStream); //It works but I want to send file buffer to B without […]