Articles of 请求

使用节点请求模块获取响应头

我试图从服务器检索服务器响应头的请求。 import 'request' from 'request' var url = "SOME_URL" var options = { url: url }; var callback = function(error, response, body) { if(!error){ console.log(response); // <== } } request(options, callback) 通过“响应”对象,它看起来不像它包含服务器响应头 http://www.tutorialspoint.com/http/http_header_fields.htm 这样做之后唯一的头部被返回 console.log(response.headers) 来自客户端请求头。 任何人都可以指向正确的方向来访问这个对象。

节点js请求 – 空的身体作出回应

我正在使用节点js请求从下面的URL检索HTML,但正文返回空。 var request = require("request"); var url = 'http://www.topshop.com/en/tsuk/product/bags-accessories-1702216/scarves-465/feather-wings-5884878?bi=0&ps=20'; request({ uri: url }, function (error, response, body) { console.log(body); if (response.statusCode != '200') { console.log('fail'); console.log(response.statusCode + ' # ' + error); } else { console.log(response.statusCode); console.log('############'); console.log(response); } }); 仔细观察,我可以看到这个回应: _header: 'GET /webapp/wcs/stores/servlet/CatalogNavigationSearchResultCmd?langId=-1&storeId=12556&catalogId=33057&beginIndex=1&viewAllFlag=false&pageSize=20&searchTermScope=3&searchTermOperator=LIKE&searchType=ALL&sort_field=Relevance&searchTerm=TS19M11KRED&x=25&y=11&geoip=search HTTP/1.1\r\nreferer: http://www.topshop.com/en/tsuk/product/bags-accessories-1702216/scarves-465/feather-wings-5884878?bi=0&ps=20&geoip=prod\r\nhost: www.topshop.com\r\nConnection: close\r\n\r\n', _headers: { referer: 'http://www.topshop.com/en/tsuk/product/bags-accessories-1702216/scarves-465/feather-wings-5884878?bi=0&ps=20&geoip=prod', host: 'www.topshop.com' }, […]

刮Node Nodejs

我想用Nodejs来刮页面“ https://www.ukr.net/ua/news/sport.html ”。 我正尝试使用'request'npm模块进行基本的获取请求,例如: const inspect = require('eyespect').inspector(); const request = require('request'); const url = 'https://www.ukr.net/news/dat/sport/2/'; const options = { method: 'get', json: true, url: url }; request(options, (err, res, body) => { if (err) { inspect(err, 'error posting json'); return } const headers = res.headers; const statusCode = res.statusCode; inspect(headers, 'headers'); inspect(statusCode, 'statusCode'); inspect(body, […]

request-promise未处理的拒绝RequestError:错误:ETIMEDOUT

嗨,我尝试编写一些下载function的承诺要求,但如果我有一个超时,我不能处理这个错误,我尝试一些例子,但仍然有这个错误 Unhandled rejection RequestError: Error: ETIMEDOUT at new RequestError (/home/parse/node_modules/request-promise-core/lib/errors.js:14:15) at Request.plumbing.callback (/home/parse/node_modules/request-promise-core/lib/plumbing.js:87:29) at Request.RP$callback [as _callback] (/home/parse/node_modules/request-promise-core/lib/plumbing.js:46:31) at self.callback (/home/parse/node_modules/request/request.js:186:22) at emitOne (events.js:101:20) at Request.emit (events.js:191:7) at Timeout._onTimeout (/home/parse/node_modules/request/request.js:816:16) at ontimeout (timers.js:380:14) at tryOnTimeout (timers.js:244:5) at Timer.listOnTimeout (timers.js:214:5) 我的代码 function下载: function downloadPhoto(url,uploadUrl,name){ return new Promise(function(resolve, reject){ rp(url,{timeout:15000},function(e){if(e) reject(e);}).on('error', function(e){return reject(e);}).pipe(fs.createWriteStream(name+'.jpg')).on('finish', () => { //console.log('done […]

节点JS浏览器模拟(cookies,会话,标题)

我需要像一个普通的浏览器从节点js请求。 我是什么意思? 我可以设置任何HTTP信息,如Cookie,标题,正文。 所以要build立HTTP请求,我想要的。 请求发出后,所有的响应数据应该是可读的,比如Set Cookie …. 如果可以在会话期间自动保存cookie,那将会很棒。 所以我不需要在每次进一步提出请求时都包含它们。 所以只需模拟一个真实的浏览器来保持会话 有没有任何框架的库可以提供这样的function?

如何获取callback函数的返回值

我想要做一个API请求,并在我的网站上的表格中显示正文。 我正在使用Node.JS,React和Request。 这是我的代码: var requestResult = Request.get('https://test.ipdb.io/api/v1/assets/?search=asdf', (err, res, body) => { return body; }); 这显然不起作用。 我可以console.log(正文),但我希望API回应在callback函数外可用。 那可能吗?

无法在NodeJS中下载页面

我想在NodeJS中下载页面( https://www.csfd.cz/tvurce/65871 ),但是我只能得到随机数据。 }Ms F +i" ) Jْ; e 7 KM0 LƩ ] Yg b Ow7U J # K 9 L 我以为这只是错误的编码,但即使大小是错误的(下载页面有44K,而这个文件只有19K。更令人惊讶的是,简单的下载python的工程很好。 Python代码: import requests url = "https://www.csfd.cz/tvurce/65871" r = requests.get(url) with open('pyth.txt','wb') as handle: handle.write(r.content) JavaScript代码: const request = require('request-promise') const fs = require('fs') request('https://www.csfd.cz/tvurce/65871').then((html) => { fs.writeFileSync('output.html', html) }) 我也尝试了像request.get等附加方法等,但仍然是相同的结果。 你能告诉我我做错了什么吗?

请求默认值,使用一个函数作为默认头

在使用NPM请求模块的request.defaults API时,是否有人知道我可以将一个函数作为请求头传递,以便每次发出请求时函数的结果都会变成标头值? 即 request.defaults({ headers:{datestamp:() => new Date() })

节点请求如何处理会话

我使用node.JS和请求模块。 我的问题是,我需要对每个请求进行身份validation,因为会话在.then((response) => {})块之外被销毁。 如何将创build的会话保存在一个类中供以后使用? 我尝试了一切都没有成功。 这是一个不工作的代码片段 login() { const getLoginUrl = 'https://www.demourl.com/' const postLoginUrl = 'https://www.demourl.com/account/login/' rp({ url: getLoginUrl, jar: this.cookieJar, method: 'GET' }) .then((body) => { var csrftoken = this.cookieJar.getCookies(getLoginUrl)[1].toString().split('=')[1].split(';')[0]; var args = { url: postLoginUrl, json: true, method: 'POST', data: { username: this.username, password: this.password }, headers: { 'method': 'POST', 'path': '/account/login/', […]

如何正确处理Promise.all:获取undefined

我试图从一些对不同的REST API的请求中得到一个数组充满了信息。 我想使用Promise.all来做到这一点,但由于某种原因,它产生了一堆内部undefined的数组。 [undefined,undefined,undefined,undefined] 这是我的代码: var _ = require("lodash");//Used exclusively to check if the result from the request is an object var ccxt = require("ccxt");//External library used to make the requests let pairs = ["ETH/EUR", "BTC/EUR", "LTC/EUR", "BCH/EUR"]; //Array on which the Promise.all is based function test(p) { for (var i = 0; i < […]