You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python向线上PHP站点发送GET请求失败,本地环境正常

排查Python向线上PHP站点发送GET请求无响应的问题

我来帮你捋捋这个问题——本地测试正常,线上就失效,十有八九是环境配置或者权限的锅,咱们一步步排查:

1. 优先检查PHP文件的写入权限

你的PHP代码是把请求内容写入text.txt,线上服务器的目录/文件权限大概率和本地不一样:

  • 先手动在站点根目录创建text.txt,给它临时设置777权限(测试用,问题解决后记得改回更安全的权限,比如644)
  • 或者查看PHP的错误日志,里面大概率会有“Permission denied”之类的写入失败提示

2. 确认请求是否真的到达了服务器

先搞清楚是请求没发出去,还是服务器收到了但没处理:

  • 查看服务器的访问日志(比如Nginx的access.log、Apache的access_log),搜索你的本地IP,看看有没有对应的请求记录,状态码是200(正常)还是4xx/5xx(错误)
  • 用curl在本地模拟请求:
    curl "http://example.com/index.php?weight=123"
    
    之后去线上看text.txt有没有新增内容,或者直接看curl返回的响应信息

3. 排查PHP配置和代码的问题

本地和线上的PHP配置可能有差异:

  • 检查php.ini里的open_basedir设置,如果开启了,当前目录可能不在允许写入的范围内;另外确认file_put_contents函数没被禁用
  • 把PHP代码里的$_REQUEST换成$_GET试试(毕竟你发的是GET请求),同时加一些调试输出:
    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    $logContent = "[" . date('Y-m-d H:i:s') . "] ";
    if(isset($_GET['weight'])){
        $logContent .= "Received weight: " . $_GET['weight'] . "\n";
    } else {
        $logContent .= "No weight param found. Full request: " . print_r($_REQUEST, true) . "\n";
    }
    
    $writeResult = file_put_contents('text.txt', $logContent, FILE_APPEND);
    echo $writeResult ? "Log written successfully" : "Failed to write log - check permissions!";
    ?>
    
    访问这个页面,看浏览器返回的内容,能直接知道是参数没收到还是写入失败

4. 调整Python请求的细节

有些线上服务器会拦截“不正规”的请求:

  • 如果站点用的是HTTPS,把请求地址里的http改成https;如果是自签SSL证书,Python请求要加verify=False(仅测试用,生产环境请配置合法证书)
  • 给请求加个浏览器的User-Agent头,避免被当成爬虫拦截:
    import requests
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    }
    
    while True:
        theWeight = input("Enter weight: ")
        r = requests.get('http://example.com/index.php', params={'weight': theWeight}, headers=headers)
        print(r.url)
        print(r.text)  # 打印PHP返回的调试信息,方便排查
    

内容的提问来源于stack exchange,提问作者Dee Dee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:12:18