python — отправляет запрос данных по php в API фляги

Я пытаюсь отправить данные с помощью самодельного API Flask.
это мой код API:

def add_message(uuid):
content = request.json
try:
print(content['mytext'])
except:print(content)
return jsonify({"uuid":uuid})
if __name__ == '__main__':
app.run(debug=True)

если я отправляю данные через python, все работает:

res = requests.get('https://**.pythonanywhere.com/123', json={"mytext":"test"})
if res.ok:
print( res.json())

но если я использую php:

$host = "https://**.pythonanywhere.com";

$url = $host.'/1237R4';

echo http($url,json_encode([
"mytext"=>"python rules"]),'post');
function http($url,$data=[],$method='get'){
$ch = curl_init();
$chOpts = [
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_HEADER=>false,
CURLOPT_FOLLOWLOCATION=>true,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_CONNECTTIMEOUT =>8,
CURLOPT_TIMEOUT => 16,
CURLOPT_HTTPHEADER,[
'Content-Type: application/json'
]
];
if($method=='post'){
$chOpts[CURLOPT_POST]=true;
$chOpts[CURLOPT_POSTFIELDS]=$data;
$chOpts[CURLOPT_URL]=$url;
}
else{
$url.='?'.is_array($data)?http_build_query($data):$data;
$chOpts[CURLOPT_URL]=$url;
}
echo 'Request: '.$method.'['.$url.']'."\n";
print_r($data);
curl_setopt_array($ch, $chOpts);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}

я получил следующую ошибку в журналах:

[b'{"ok":false,"error_code":400,"description":"Bad Request: message text is empty"}']

Как заставить это работать на php?

2

Решение

$req = $http({method: 'get',url: "https://**.pythonanywhere.com/123",params: {mytext: "test"});

теперь mytext стал строкой, вы не передавали его как строку.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]