Я делаю внутренний API на моих серверах.
Я хочу передать некоторые Строки JSON из PHP в Python.
На Python у меня есть этот код:
from flask import request
from flask import jsonify
...
@app.route('/database/<string:token>', methods=['POST', 'GET'])
def sync(token):
if token not in VALID_TOKENS:
...
json = request.get_json(force=True)
...
...
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=False, port=6000)
На стороне PHP у меня есть:
$payload = $datafromdatabase;
$payload = json_encode($payload);
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($payload))
);
$result = curl_exec($ch);
Но Flask возвращает меня при каждом запросе:
127.0.0.1 - - [19/Feb/2017 20:08:00] "POST /database/token HTTP/1.1" 400 -
П.С .: На Python, request.data
а также request.args
оба None
,
П.П.С .: Использование requests.post(url, json=data)
в питоне работает.
Задача ещё не решена.
Других решений пока нет …