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

Laravel路由已存在但Postman调用提示Method not found问题

问题:Postman调用Laravel 5.7 API提示「Method not found」

调用基于Laravel 5.7开发的API时,Postman返回错误:
Method not found

已确认:

  • 已创建对应控制器及路由
  • 通过php artisan route:list命令确认路由存在

控制器代码:

<?php

namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use GuzzleHttp\Exception\GuzzleException;
use Illuminate\Http\Response;
use GuzzleHttp\Client;
use Config;


class EletricityController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    
    public function eletricityToken(Request $request){
      
        $client = new Client();
        $URL = Config('api.authUrl');
        $headers = [
        'Authorization' => 'Bearer <token>'
        ];
        $options = [
        'form_params' => [
        'client_id' => Config('api.client_id'),
        'client_secret' => Config('api.client_secret'),
        'username' => Config('api.username'),
        'password' => Config('api.password'),
        'grant_type' => 'password',
        'scope' => 'read write openid'
        ]];
        $request = new Request('POST', $URL, $headers);
        $res = $client->sendAsync($request, $options)->wait();
        echo $res->getBody();
    }
}

路由代码:

Route::get('eletricityToken','Api\EletricityController@eletricityToken')->name('eletricityToken');

排查方案及解决办法

1. 核对请求方法与路由定义

你的路由使用Route::get(),仅接受GET请求。如果Postman中选择了POST、PUT等其他请求方法,必然触发「Method not found」错误:

  • 若业务允许GET请求,直接将Postman的请求方法切换为GET;
  • 若业务需要POST请求,修改路由为Route::post('eletricityToken','Api\EletricityController@eletricityToken')->name('eletricityToken');,同时Postman使用POST方法调用。

2. 检查请求URL的准确性

  • 确认Postman中的请求URL与php artisan route:list输出的路由路径完全一致,注意大小写(Laravel路由默认区分大小写)、首尾斜杠是否多余/缺失,以及是否包含项目前缀(如api/,此时URL应为http://your-domain/api/eletricityToken);
  • 避免URL中出现拼写错误,比如把eletricityToken写成electricityToken。

3. 清理路由缓存

Laravel 5.7的路由缓存不会自动更新,即便route:list显示路由存在,缓存可能仍保留旧配置,执行以下命令清理:

php artisan route:clear

4. 验证控制器的命名空间与文件

  • 确认控制器文件位于app/Http/Controllers/Api目录下,且文件名为EletricityController.php(注意拼写和大小写与类名一致);
  • 检查命名空间App\Http\Controllers\Api是否正确,避免因命名空间错误导致路由无法找到控制器方法。

5. 规范控制器响应格式(非直接原因,但建议优化)

控制器中使用echo $res->getBody();虽然不会引发当前错误,但不符合Laravel的响应规范,建议修改为:

return response($res->getBody(), $res->getStatusCode())
       ->header('Content-Type', $res->getHeaderLine('Content-Type'));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 08:04:55