php - 通过php将数据请求发送到flask API

标签 php python python-3.x api flask

我正在尝试通过自制的Flask API发送数据。
这是我的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?

最佳答案

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


现在mytext变成了字符串,您没有将它作为字符串传递。

关于php - 通过php将数据请求发送到flask API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48811905/

相关文章:

php - 如何确定一个列表是否是另一个列表的子集?

python - ElasticSearch:查找具有数组中字段值的文档

python - 'collections.OrderedDict' 对象没有属性 'pk' - django rest 框架

python - 为什么os.path指的是项目路径而不是文件路径?

python-3.x - 如何修复 python 中希伯来语字符串的乱码?

php - 根据 php session 属性更改 HTML 菜单栏?

php - 使用动态命名循环多个 POST 变量

python - 将 Python 标准库中的模块安装到本地目录的标准方法是什么?

Python 在输入文件的开头添加一个空格?

php - 如何为单独的包定义可选依赖项?