Tag: 请求

在request.jar中不能添加cookie

我在一个项目中使用了request.js,并且从版本2.30.0开始,我不能再这样做了: var j = request.jar(); var cookie = request.cookie('uid'); cookie.value = browser.cookies.select({name:'uid'})[0].value; j.add(cookie); 我的错误是: TypeError: Object #<CookieJar> has no method 'add' 有人问题解决了吗?

node.jsparsing请求的JSON

我发送凭证JSON对象与下面的请求到node.js: credentials = new Object(); credentials.username = username; credentials.password = password; $.ajax({ type: 'POST', url: 'door.validate', data: credentials, dataType: 'json', complete: function(validationResponse) { … } }); 在服务器端,我想加载提交的凭据到一个JSON对象进一步使用它.. 但是,我不知道如何获得需求对象的JSON … http.createServer( function (req, res) { // How do i acess the JSON // credentials object here? } ).listen(80); (我有一个调度员在我的函数(REQ,RES)进一步传递给控制器​​,所以我不想使用.on('data',…)函数)

节点请求抛出:错误:无效的URI“www.urlworksinbrowser.com”或options.uri是必需的参数

我在Ubuntu 12.04上使用Node v0.10.11。 我不知道我错过了什么使一个urlstream的请求模块工作。 这个程序正在尝试去邮件列表网站,find每个月的下载链接,然后每个月下载一次。 mikeal的自述文件中提到:“第一个参数可以是一个url或一个选项对象,唯一需要的选项是uri,其他所有的都是可选的uri || url – 来自url.parse()的完全限定的uri或parsing的url对象。 如果我打电话给url.parse(www.targeturl.com),我得到[错误:options.uri是必需的参数]如果我不使用url.parse,我得到[错误:无效的URI“www.freelists.org / archive / si-list / 06-2013“](这个链接在我的浏览器中工作得很好) 我把代码缩减到了42行。 任何意见欢迎 var request = require('request'), url = require('url'), stream = require('stream'), cheerio = require('cheerio'), // a reduced jQuery style DOM library Transform = require('stream').Transform var DomStripStream = function(target) { this.target = target; stream.Transform.call(this,{objectMode: true}); } DomStripStream.prototype = […]

传递cookie作为node.js请求的一部分

我正在使用request包创build我的服务器端请求。 我写了authentication中间件,检查所有请求的Cookie /会话ID。 因此,有没有办法将用户的cookie包含在请求中? 这是我现在的代码: var cookie = parseCookie.parseCookie(req.headers.cookie); request('http://localhost:3000/users/api', function(error, response, body) { console.log(body); //this console.logs my login page since requests w/o valid cookies get redirected to login res.render('../views/admin'); }); 目前,这在控制台中返回“没有findcookie”。 但是,如果我closures身份validation中间件,上面的代码按预期工作。 附加信息: 我想要的cookie是位于浏览器上的最终用户的cookie。 最终用户的cookie是应用程序在用户login时创build的。 更新 – 解决scheme尝试1: 我从文档中试了这个: var cookie = parseCookie.parseCookie(req.headers.cookie); var cookieText = 'sid='+cookie; var j = request.jar(); var cookie = […]

在Node.js中访问HTTP请求的时间戳

有没有办法访问HTTP请求发送到Node.js服务器的时间戳? 就像是: app.post('', function (req, res) { console.log(req.date); //or console.log(req.timestamp); } 我尝试了几件事情,并已打印出整个req对象到控制台,但没有find时间戳属性。 我是否必须手动发送时间戳? 我认为这已经是HTTP请求的一部分了。

当HTTP运行一段时间后连接到其他站点时,Node.js应用程序开始超时(ETIMEDOUT)

我使用请求模块以非常标准的方式连接到我的node.js应用程序中的其他网站: Network.prototype.httpRequest = function(url, method, params, headers, callback) { var qs = typeof params === 'string' ? params : querystring.stringify(params || {}), config = { 'method': (method || 'get').toUpperCase(), 'url': url, 'timeout': this.app.api.settings.http.timeout_outbound }; if(config.method === 'GET') { config.url += '?' + qs; } else { config.body = qs; } request(config, callback); }; 几个小时后,我的应用程序是活着的,这个function开始超时 – […]

响应编码与node.js“请求”模块

我正在尝试从BingsearchAPI获取数据,而且由于现有的库似乎基于旧的停用的API,所以我尝试使用request库,这似乎是最常见的库。 我的代码看起来像 var SKEY = "myKey…." , ServiceRootURL = 'https://api.datamarket.azure.com/Bing/Search/v1/Composite'; function getBingData(query, top, skip, cb) { var params = { Sources: "'web'", Query: "'"+query+"'", '$format': "JSON", '$top': top, '$skip': skip }, req = request.get(ServiceRootURL).auth(SKEY, SKEY, false).qs(params); request(req, cb) } getBingData("bookline.hu", 50, 0, someCallbackWhichParsesTheBody) Bing返回一些JSON,我可以使用它, 但如果响应正文包含大量的非ASCII字符JSON.parse抱怨该string格式不正确。 我尝试切换到一个ATOM内容types,但没有区别,该XML是无效的。 检查request()callback中提供的响应主体实际上显示错误的代码。 所以我尝试了一些Python代码的相同的请求,似乎一直工作正常。 以供参考: r = requests.get( 'https://api.datamarket.azure.com/Bing/Search/v1/Composite?Sources=%27web%27&Query=%27sexy%20cosplay%20girls%27&$format=json', auth=HTTPBasicAuth(SKEY,SKEY)) stuffWithResponse(r.json()) […]

如何在nodejs中closures请求?

我拥有的: 我使用expression式 框架使用node.js ,并且我正在构build一个可以上传文件的表单,我正在使用node-formidable 。 有什么问题 我的问题是,我无法closures请求,如果我发现上传的文件错误。 我想检查文件types,大小等。所以我可以得到正确的file upload,而文件实际上没有上传,所以我不浪费时间。 所以问题是我无法停止HTTP请求。 我曾经尝试过 这是我迄今为止所尝试的: request.connection.destroy(); response.end('something went wrong…'); 我假设connection.destroy()中止请求,我知道这是因为它触发formidableforms中止事件( form.on('abort', function(){ … }) )但该文件仍在上传,并且该响应没有在file upload之后到达。 那么我应该如何closuresHTTP请求,并将消息发送回客户端呢? 编辑:和其他东西,当我不使用response.end()然后它的作品,除了客户端等待的答案,这很奇怪:\

在相同的curl请求成功的情况下,nodejs https#请求失败

我正在尝试连接到twitter API的公共stream端点。 当我运行示例参数我从twitter api的testing工具在nodejs我得到401 unauthorized错误下面你可以看到我的nodejs示例请求 'use strict'; const https = require('https'); const qs = require('querystring'); const obj = { method: "POST", headers: { Authorization: 'OAuth oauth_consumer_key="pXZ8xSWvjZjE4UaNntVsCwWPg", oauth_nonce="776f1a4ec0c3ed9ecbfb68aa0f7e2324", oauth_signature="jk8e84V0OcgcepkL7F%2BXt2fAy8o%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1463258508", oauth_token="416282416-vFTMVJCFiRW8G6nwoFhH3OBqrJsKDbIJ93sbOm2a", oauth_version="1.0"' }, hostname: "stream.twitter.com", path: "/1.1/statuses/filter.json" } https.request(obj,res => { res.on("data", d => { console.log(d.toString()); }); }).end(qs.stringify({track:"javascript"})) 但是,如果我发送这个请求curl它完美的作品在这里是我的例子curl请求 curl –request 'POST' 'https://stream.twitter.com/1.1/statuses/filter.json' –data 'track=javascript' […]

无法validationNode.js中的第一个证书

我有一个Nodejs API,它使用ssl和https,所以我试图在不同的服务器上使用Express-js构build一个web应用程序。 进行GET请求时收到以下错误: events.js:141 throw er; // Unhandled 'error' event ^ Error: unable to verify the first certificate at Error (native) at TLSSocket.<anonymous> (_tls_wrap.js:1017:38) at emitNone (events.js:67:13) at TLSSocket.emit (events.js:166:7) at TLSSocket._init.ssl.onclienthello.ssl.oncertcb.TLSSocket._finishInit (_tls_wrap.js:582:8) at TLSWrap.ssl.onclienthello.ssl.oncertcb.ssl.onnewsession.ssl.onhandshakedone (_tls_wrap.js:424:38) 我试过以下,没有成功: 添加require('ssl-root-cas').inject(); 并在请求中rejectUnauthorized: false, 。 添加process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 在我的主文件,这给了我一个Error: socket hang up 请求码: var service_bus = require('service_bus'); var error_engine […]