当前位置: 首页 > 知识库问答 >
问题:

获取laravel中json响应中的HTTP代码

伯建安
2023-03-14

我需要保存通过json发送的响应代码,例如404:

Route::fallback(function(){
    return response()->json(['message' => 'Not Found'], 404);
})->name('api.fallback.404');

我尝试使用以下代码:

use Illuminate\Http\JsonResponse as Resp;

if (!$this->response_code) {
     $this->response_code = Resp::getStatusCode();
}

但是laravel告诉我这个错误:

非静态方法Symfony\Component\HttpFoundation\Response::getStatusCode()不应静态调用

共有3个答案

章锦
2023-03-14

您可以使用http_response_code()获取响应代码。

$this->response_code = http_response_code;
陶高峻
2023-03-14

Jaime的答案看起来很好,可以作为一个通用的解决方案,解决任何他们说不能静态调用的错误,但我在illighted\Http\JsonResponse对象上根本看不到该方法——因此您报告了500个错误。

JsonResponse的Laravel文档表明可以调用JsonResponse对象上的status(),以获取响应代码的int值。

景安翔
2023-03-14

您正试图从Class本身调用一个非静态方法(即属于对象的方法)。试试这个:

use Illuminate\Http\JsonResponse as Resp;

if (!$this->response_code) {
  $this->response_code = $this->getStatusCode();
}
 类似资料:
  • 如何从的结果中获取HTTP状态?

  • 我正在使用JMeter执行负载测试,用户应该执行启动-登录- clk仪表板页面- clk登录页面(登录后出现的页面,即主页),其中clk仪表板和clk登录页面重复操作5次。 直到30个用户,当我增加用户负载时,我没有收到任何错误,我开始收到错误,因为 响应代码:非HTTP响应代码:org.apache.HTTP.conn.HttpHostConnectException响应消息:非HTTP回应消息

  • 问题内容: 我想从Http get响应中获取一个对象: 这是我当前对Http get的代码: 这是convertSteamToString函数: 现在,我只是得到一个字符串对象。我如何找回JSON对象。 问题答案: 您获得的字符串只是JSON Object.toString()。这意味着您将获取JSON对象,但使用String格式。 如果应该获取JSON对象,则可以输入:

  • 我想从Http get响应中获取一个对象: 这是我当前的Http get代码: 这是转换的SteamToString函数: 现在我只是得到一个字符串对象。如何取回JSON对象。

  • 我正在jmetm中执行负载测试。我的请求是并行运行4个API,所以我在jmetm中使用并行控制器,但在执行过程中,每次运行jmetm都会间歇性地收到以下两个响应 < li >“非HTTP响应代码:org . Apache . HTTP . nohttpresponse exception” < li >“响应代码:非HTTP响应代码:javax.net.ssl.SSLException响应消息:非

  • 问题内容: 我是Node开发的新手,我正在尝试使用具有JSON响应的RESTful协议进行服务器端API调用。我已经阅读了API文档和本SO帖子。 我试图从轨道总线中提取的API并以JSON输出返回数据。我对如何使用实际URL中的所有参数和选项发出HTTP GET请求感到困惑。甚至可以通过浏览器或使用“ curl”命令来访问API及其响应。http://developer.cumtd.com/ap