猿问

使用 Python 向 PHP 发送 POST

我正在尝试将简单数据从笔记本电脑上的 python 脚本发送到我自己托管在 hostgator 上的网站,但我无法让它工作。


这是我的python脚本:


import requests


url = 'http://******.com/***/test.php'

query = {'site': 'test'}


res = request.post(url, query)

print(res)

这是在我的网站上运行的 php:


<?php

$servername = "localhost";

$username = "*****";

$pass = "*****";

$dbname = "*****";

?>


<?php

if($_REQUEST["site"]){

    $site = htmlspecialchars($_REQUEST["site"]);

    echo "Success";

    {

        //Create connection

        $conn = new mysqli($servername, $username, $pass, $dbname);

        //Check connection

        if ($conn -> connect_error) {

            die("Connection failed: " . $conn->connect_error);

        }


        $sql = "INSERT INTO accounts (SITE) VALUES ('$site')";


        if($conn->query($sql) === TRUE) {

            echo "Record added successfully";

        } else {

            echo "Error: " . $sql . $conn->error;

        }


        $conn->close();

    }

}

?>

问题不应该出在数据库连接上,因为我已经对此进行了测试,并且似乎可以正常工作。


当我在我的 linux 机器上运行 python 脚本时,我得到一个响应 406 并且在数据库中看不到任何插入。


我可能只需要一双新鲜的眼睛。


慕桂英4014372
浏览 160回答 2
2回答

慕村225694

对于与我遇到相同问题的任何人,我通过在我的帖子请求中添加标头来解决它,如下所示:import requestsurl = 'http://******.com/***/test.php'query = {'site': 'test'}res = request.post(url, query, headers={"User-Agent": "Firefox/12.0"})print(res)

肥皂起泡泡

你的错误在这里: res = request.post(url, query) >> 你必须使用 requests 而不是 request 你忽略了“s”字符
随时随地看视频慕课网APP
我要回答