最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

从Python的节点JS POST请求

运维笔记admin9浏览0评论

从Python的节点JS POST请求

从Python的节点JS POST请求

[免责声明:我在网络工程的绝对新手!! :)]

我建立与用户和他们的密码小数据库服务器的NodeJS。我创造了我的小网站这样您可以在您的用户名和密码,它创建让你登录你的会话放弃。它工作正常。

现在我想用Python语言编写的东西自动登录小咂舌。研究吨的后,我想出了这样的Python程序:

import requests 
def authentification():
s              = Session();

req = Request('POST', "http://192.168.7.1:3000/auth")
prepped = req.prepare()
prepped.body = 'username=test&password=test'

#del prepped.headers['Content-Type']

resp = s.send(prepped)
print resp.text
r = requests.get('http://192.168.7.1:3000/home')
print r.text

我在应用程序的NodeJS功能如下:

  app.post('/auth', function(request, response) {
    var username = request.body.username;
    var password = request.body.password;
    console.log("Somebody tries to acces");
    console.log(username)
    if (username && password) {
        connection.query('SELECT * FROM accounts WHERE username = ? AND password = ?', [username, password], function(error, results, fields) {
            if (results.length > 0) {
                request.session.loggedin = true;
                request.session.cookie.maxAge = 3000;
                request.session.username = username;
                response.redirect('/home');
            } else {
                response.send('Incorrect Username and/or Password!');
            }           
            response.end();
        });
    } else {
        response.send('Please enter Username and Password!');
        response.end();
    }
});

当我尝试像我这样做是为了authentificate你在我PROGRAMM浏览器,我将结束:response.send(“请输入用户名和密码!”);什么是错的我POST请求什么,我需要改变,它会找到我的用户名和密码?

对我来说另一个重要的问题是,我怎么能保持清醒会议在Python做一些其他请求。对于文件等?

非常感谢您的帮助!如果有任何问题,我的问题,或是我给出的输入,请告诉我一个我会给信息你需要的!

亲切的问候卡尔

回答如下:

Python part (client)

随着requests module您可以发送使用data属性您提供包含您的有效载荷的字典到一个POST请求。它会看起来像这样

import requests

url = 'http://localhost:3000/auth'

correct_payload = {'username': 'hello', 'password': 'p4$$w0rd!'}
wrong_payload = {'username': 'hello'}

# Output => OK
r = requests.post(url, data=correct_payload)
print(r.text)

# Output => You need to provide Username & password
r = requests.post(url, data=wrong_payload)
print(r.text)

Node.JS part (server)

要分析你从客户端接收数据,使用body-parser包作为Express.js middleware。这将解析,并把你的数据在req.body。代码如下所示

const express = require('express')
const bodyParser = require('body-parser')

const port = 3000
const app = express()
app.use(bodyParser.urlencoded({ extended: false }))

app.post('/auth', (req, res) => {
  const { username, password } = req.body;

  if (username && password) {
    res.send('OK'); // ALL GOOD
  } else {
    res.status(400).send('You need to provide Username & password'); // BAD REQUEST 
  }
});


app.listen(port, () => console.log(`Example app listening on port ${port}!`))

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论