Я пытаюсь отправить JSON из файла Python в файл PHP через URL. Файл PHP вызывается и выполняется правильно. Но он не улавливает данные сообщения, которые я пытаюсь отправить вместе с ним. Но это показывает NULL.
myPython.py
import requests, json
url = 'http:/mywebsite.com/api/v1/myPhpFile.php?msg='
payload = {'firstname':'Olivia', 'city':'London', 'country':'UK'}
r = requests.post(url, data=payload)
также попробовал:
r = requests.post(url, data=json.dumps(payload))
myPHP.php
<?php
...
class AddUser extends Abstractor {
public $log;
public function __construct() {
$this -> log = new MyLogPHP('../includes/debug.log.txt');
}
public function processJob($workerMsg) {
$this -> log -> info($workerMsg, 'W/ADD-USER');
}
}
$addUser = new AddUser();
$response = $addUser -> processJob($_REQUEST['msg']);
В журнале я получаю значение NULL.
Я даже попытался отредактировать URL, удалив ‘? Msg =’
myPython.py
import requests, json
url = 'http:/mywebsite.com/api/v1/myPhpFile.php'
payload = {'msg':{'firstname':'Olivia', 'city':'London', 'country':'UK'}}
r = requests.post(url, data=payload)
или же
r = requests.post(url, data=json.dumps(payload))
Что я тут не так делаю?
@ Алекс прав.
Вы отправляете данные в теле, и вы должны запросить тело в PHP.
код ниже поможет вам начать.
myPython.py
import requests, json
url = 'http:/mywebsite.com/api/v1/myPhpFile.php'
payload = {'firstname':'Olivia', 'city':'London', 'country':'UK'}
r = requests.post(url, data=json.dumps(payload))
myPHP.php
<?php
...
class AddUser extends Abstractor {
public $log;
public function __construct() {
$this -> log = new MyLogPHP('../includes/debug.log.txt');
}
public function processJob($workerMsg) {
$this -> log -> info($workerMsg, 'W/ADD-USER');
}
}
$addUser = new AddUser();
$entityBody = file_get_contents('php://input');
$response = $addUser -> processJob($entityBody);
Других решений пока нет …