我正在使用@ErikRas的入门套件
使用以下代码,我无法验证我的python程序。
这是我的python:
import requests
URL="http://localhost"
PORT="3030"
Session = requests.Session()
Request = Session.post(URL+':'+PORT+'/login', data={'name':'AuthedUserName'})
# (Password to follow proof of concept obviously)
在我的api.js文件中,我刚才:
import express from 'express';
import session from 'express-session';
import bodyParser from 'body-parser';
import config from '../src/config';
import * as actions from './actions/index';
import {mapUrl} from 'utils/url.js';
import http from 'http';
const app = express();
const server = new http.Server(app);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(session({
secret: 'react and redux rule!!!!',
resave: false,
saveUninitialized: false,
cookie: { maxAge: 60000 }
}));
app.use((req, res) => {
/* There's heaps here, but all that is relevant is: */
console.log(req.body)
在控制台中,我刚刚收到{}
我找到了这篇文章: req.body empty on posts 和 Python Post Request Body appears empty in Node server when sent
但是你可以看到我已经在使用bodyparser.json和bodyparser.urlencoded.extended = true
答案 0 :(得分:0)
好的,我将我的pythons请求与我的web-app请求进行比较,方法是将请求打印到节点中的控制台。
我发现网络应用程序的标题比python的请求更多。请求。 Web应用程序: 引用者:' http://localhost:3001/login' 来源:' http://localhost:3001' 主持人:' http://localhost:3001' 连接:'关闭'
所以我把它包含在我的标题中,它有效!
我想查看哪个标题属性是必要的',所以我逐渐将所有内容都拉出来,看看是否会破坏POST请求。
原来我设法把所有东西拉出来!所以我现在使用的是:
r = Session.post(URL+':'+PORT+'/login',headers = {}, data={'name':'AuthedUserName'})
那就是!!我想了解为什么header = {}有效,但我需要继续我的项目!!
<<<<<<< ----编辑---->>>>>>>
以上是半年'是的,因为我的网络应用程序正在使用json,我想使用json,我需要做的是将我的标题更改为
headers = {u'content-type': u'application/json'}
然后在有效负载上使用json.dumps!
r = session.post('http://'+DB_URL+':3030/sinumecUpdate', headers = headers, data = json.dumps(dataObject))
我还需要退出
app.use(bodyParser.urlencoded({ extended: true }));
从我的节点API开始,只使用JSON主体解析器。
答案 1 :(得分:0)
import requests
import json
url = 'http://127.0.0.1'
data={'name':'AuthedUserName'}
headers = {'content-type': 'application/json'}
r = requests.post(url=url, data=json.dumps(data), headers=headers)