【AI】图像识别-物体检测-百度AI-EasyDL-NodeJS
var https = require('https') var express = require('express'); var app = express(); var bodyParser = require("body-parser"); var request = require('request') var fs = require('fs'); // 引入fs模块 //访问端口 var port = 9999 //接受post数据 app.use(bodyParser.json({ "limit": "100mb" })); app.use(bodyParser.urlencoded({ limit: '50mb', extended: true })); //设置跨域访问 app.all('*', function (req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); res.header("X-Powered-By", ' 3.2.1') res.header("Content-Type", "application/json;charset=utf-8"); next(); }); var qs = require('querystring'); const param = qs.stringify({ 'grant_type': 'client_credentials', 'client_id': 'XXXXX', 'client_secret': 'XXXXXX' }); function log(data) { fs.writeFile('imgdata.txt', data, { 'flag': 'a' }, function (err) { if (err) { throw err; } console.log('Hello.'); }); } app.post('/XXXXDetectV1', function (req, res) { var imgdata = req.body.imgdata; //body query // console.log(imgdata) imgdata = imgdata.replace("data:image/png;base64,","") log(imgdata) https.get({ hostname: 'aip.baidubce.com', path: '/oauth/2.0/token?' + param, agent: false }, function (res2) { // 在标准输出中查看运行结果 // res2.pipe(process.stdout); // console.log('statusCode:', res2.statusCode); // console.log('headers:', res2.headers); res2.on('data', (d) => { console.log("认证成功") // console.log('' + d); //将buffer转为字符串或者使用d.toString() let b = JSON.parse('' + d); //将buffer转成JSON // console.log(b) var access_token = b["access_token"] console.log(access_token) // res.end(JSON.stringify(b)); data = { 'image': imgdata } request_url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/detection/XXXXDetectV1" + "?access_token=" + access_token request({ url: request_url, method: "POST", json: true, headers: { "content-type": "application/json", }, body: data }, function (error, response, body) { console.log(error) // console.log(response) // console.log(body) if (!error && response.statusCode == 200) { console.log(body) // 请求成功的处理逻辑 res.end(JSON.stringify(body)); } }); }); } ); }) //启动服务--------------------------------------------------------------------------------------------- var server = app.listen(port, function () { var host = server.address().address var port = server.address().port console.log("应用实例,访问地址为 http://%s:%s", host, port) })
博客地址: http://www.cnblogs.com/defineconst/
博客版权: 本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望高手的您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
博客版权: 本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望高手的您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库