簡體   English   中英

使用 Python 將 POST 發送到 PHP

[英]Sending POST with Python to PHP

我正在嘗試將簡單數據從筆記本電腦上的 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 並且在數據庫中沒有看到任何插入。

我可能只需要一雙新鮮的眼睛。

謝謝

對於遇到與我相同問題的任何人,我通過在我的帖子請求中添加標題來解決它,如下所示:

import requests

url = '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”字符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM