Articles of curl

如何限制我的restapi只能使用node.js的引用URL?

我在nodejs中有一个restAPI,并会限制只从特定的URL访问? 我的node.js代码: var express=require("express"); var app=express(); var auth = require('basic-auth'); appStart.use(function(req, res, next) { console.log(req.get('origin')); console.log(requestIp.getClientIp(req)); console.log(req.ip); //check the api key username e password var authentication=auth(req); if(authentication.name!="apiTokenUsername" || authentication.pass!="apiTokenPassword") res.status(400).send("Api key Username or password incorrect!"); //check if the ip of request is authorized if(req.ip=="xxx.xxx.xxx.xxx") return next(); //check if the origin of request is authorized if(req.get('origin') […]

通过REST进行原生Kubeless调用

我想提交一个函数(通过HTTP触发器)从一个NodeJS进程kubeless,但我不想使用JavaScript等效 curl –data '{"term":"Albemarle"}' localhost:8080/api/v1/proxy/namespaces/default/services/bikesearch/ –header "Content-Type:application/json" 因为这需要我知道运行该function的服务的实际IP地址。 我希望能够通过知道函数的名称来访问kubeless api,从而给我提供了间接的级别 kubeless function call bikesearch –data '{"term":"Albemarle"}' 有无论如何通过节点访问上述(函数调用)API?

cURL的formsaxios或ajax是什么?

我正在创build一个任务来发送PUT请求,并在节点中使用axios上传.pot文件。 我可以跑 curl -i -u api:<api-key> -F file=@dist/file.pot https://api-link.com/v2/api 它会正常工作 我试过在节点上做这个 var fd = require('form-data'); var axios = require('axios'); var form = new FormData(); form.append('file', 'dist/file.pot'); var header = { headers: Object.assign({}, apiToken(), form.getHeaders()) }; axios.put('https://api-link.com/v2/api/', form, header) .then(function(res) { console.log(res); }) .catch(function(err) { console.log(err); }) 这不像curl命令。 apiToken()是处理curl命令的-u api:<api-key>部分的函数,它返回{'Authorization': 'Basic <api-key>'} 。 我已经检查过该function,因为我能够成功地执行获取请求。 那么在ajax或axios中相当于-F file=@dist/file.pot是什么?

使用json文章的摘要authentication的curl命令

(使用node.js,express,passport-http) 我有一个POST路由做摘要身份validation,试图应用程序JSON的内容types。 我可以用摘要命中GET路由,没有问题,我可以使用基本身份validation来打开POST路由,但是当我尝试使用摘要身份validation执行POST时,会得到400 – 错误请求。 它看起来像curl把内容types放在初始摘要请求(内容长度为0,所以它知道足够的不发送初始digest-auth请求的JSON正文),我的一方(expression)失败无效的JSON(空体): $ curl -v –digest -X POST –data @body.json –user org2user2:lameduck -H "content-type: application/json" http://127.0.0.1:3002/user * About to connect() to 127.0.0.1 port 3002 (#0) * Trying 127.0.0.1… * connected * Connected to 127.0.0.1 (127.0.0.1) port 3002 (#0) * Server auth using Digest with user 'org2user2' > POST /user HTTP/1.1 > […]

无法读取未定义nodejs的属性“path”

这是我的服务器端代码: var fs = require('fs'), MongoClient = require('mongodb').MongoClient, db; var url = "mongodb://localhost:27017/fullwardrobedb"; MongoClient.connect(url, {native_parser: true}, function (err, connection) { if (err) { console.log("Cannot connect to database " + url); process.exit(1); } db = connection; }); fs.exists(__dirname + '/uploads', function(exists){ if(!exists){ console.log('Creating dir ' + __dirname + '/uploads'); fs.mkdir(__dirname + '/uploads', function(err){ if(err){ console.log('Error creating […]

Node.js – 将值传递给其他页面

我正在尝试使用node.js构build一个Web服务。 在这个体系结构中,curl用于将数据发布到index.js应用程序。 index.js应用程序处理输出,然后它应该将输出传递到不同的页面。 例如,如果收到的ID在100-200之间,则将ID推送到movies.html等等。 现在我已经能够使用CURL和node.js来实现POST请求的处理,我不知道如何将数据传递给其他页面。 这是我的index.js代码。 var http = require('http'); var qs=require('querystring'); var redis=require('redis').createClient(); console.log('Server Starting Now: '); var count=0; http.createServer(function (req, res) { if(req.method=='POST'){ count=count+1; var body=""; req.on('data',function(data){ body+=data; }); req.on('end',function(){ var post=qs.parse(body); console.log(post); res.write("Received"); redis.lpush('XMLqueue',JSON.stringify(post)); }); } }).listen(8124, "127.0.0.1"); console.log('Server running at http://127.0.0.1:8124/'); 如何将这个index.js页面的数据传递给其他页面?

通过brew安装节点时出错

我试图通过brew来安装节点。 但是得到低于问题。 brew安装节点==>安装节点依赖关系:icu4c ==>下载https://downloads.sf.net/project/machomebrew/Bottles/icu4c-54.1 。 curl:(60)SSL证书问题:证书链无效更多细节在这里: http : //curl.haxx.se/docs/sslcerts.html curl默认使用证书颁发机构(CA)公钥(CA证书)的“包”来执行SSL证书validation。 如果默认的软件包文件不够用,可以使用–cacert选项指定一个备用文件。 如果此HTTPS服务器使用包中表示的由CA签名的证书,证书validation可能由于证书问题(可能已过期,或名称可能与URL中的域名不匹配)而失败。 如果您想closures卷发的证书validation,请使用-k(或–insecure)选项。 错误:无法下载资源“icu4c”下载失败: https ://downloads.sf.net/project/machomebrew/Bottles/icu4c-54.1.mavericks.bottle.1.tar.gz警告:瓶子安装失败:从源头build设。 ==>下载http://download.icu-project.org/files/icu4c/54.1/icu4c-54_1-src 。 已下载:/Library/Caches/Homebrew/icu4c-54.1.tgz错误:SHA1不匹配预期:8c752490bbf31cea26e20246430cee67d48abe34实际:a2fd3379ea944f6b2f97fb0f79b7b85cb3e14d0b存档:/Library/Caches/Homebrew/icu4c-54.1.tgz要重试一个不完整的下载,删除上面的文件。 请帮忙解决这个问题。 提前Thnks

SSL与节点和使用cURL混淆

我已经将我的安全节点服务器设置为: var HTTPSOptions = { hostname: config.hostname, cert: fs.readFileSync(config.ssl.cert_path), key: fs.readFileSync(config.ssl.key_path), requestCert: true, rejectUnauthorized: false, passphrase: config.ssl.ca_key_password }; HTTPSOptions.agent = new https.Agent(HTTPSOptions); var httpsServer = https.createServer(HTTPSOptions, app).listen(config.https_port, function () { console.info("HTTPS server running on %d", config.https_port); }); 我也为我的一个客户端生成了一个client.key , client.crt和client.csr ,并用服务器的.key和.crt签名。 现在,我想从客户端连接到我的API。 阅读cURL如何工作,我用: curl –key client.key –cert client.crt:clientPassword mySecureSite.com\api\call 这工作正常,除了相同的代码将工作,如果我提供任何密钥/证书或任何密码,或者即使我没有提供任何密钥/证书! 有人可以开导我吗?

C ++中的URL编码和nodejs中的解码

我正在将数据从C ++客户端传输到nodejs服务器。 我使用zlib首先压缩string,然后使用curl_easy_escape来对压缩的string进行url编码。 std::string s = zlib_compress(temp.str()); std::cout << s <<"\n"; CURL *handle = curl_easy_init(); char* o = curl_easy_escape(handle, s.data(), s.size()); std::cout << o <<"\n"; 然后我发送它使用: std::string bin(o); curl_easy_setopt(handle, CURLOPT_POSTFIELDSIZE, bin.size()); curl_easy_setopt(handle, CURLOPT_POSTFIELDS, bin.data()); curl_easy_perform(handle); 当我运行这个,我得到的输出: x??с??Ҵ4? x%DA%D3%D1%81%80%E2%92%D2%B44%1D%03%00%1BW%03%E5 现在,我收到了我的nodejs服务器上的第二个编码string。 我现在尝试解码它。 var x = req.params; for (var key in req.body) { console.log(key); var x = unescape(key); […]

用于Webhook的Node.JS https服务器获取握手错误

下面的NodeJS只是处理来自另一个源的webhook。 我testing了它,它在http端口80上工作,但源需要https。 当我打开该端口并在443上运行此脚本时,使用curl进行testing会得到以下错误。 但是我不认为应该要求证书吗? 我怎么解决这个问题? curl: (35) SSL peer handshake failed, the server most likely requires a client certificate to connect 这是脚本: var http = require('https') var server = http.createServer(function(req, res) { if (req.method == "POST") { var str = '' req.on('data', function(data) { str += data }) req.on('end', function() { var json = JSON.parse(str) […]