使用Delphi、Indy10和LARAVEL PHP获取响应内容时出现问题

使用Delphi、Indy10和LARAVEL PHP获取响应内容时出现问题,php,laravel,api,delphi,indy10,Php,Laravel,Api,Delphi,Indy10,我正在构建一个LaravelPHPAPI,以供Delphi2007使用。 基本上,我在Delphi中执行POST,在PHP中验证字段。如果验证失败,我需要返回代码422以及验证错误数组 在Delphi中,我使用Indy10。在其中,我有一个类型为TIdHTTP的客户机 要发布此帖子,我需要: Client.Post(sFullEndPoint, Request, Response); 要获取代码422: Client.ResponseCode; 要获取响应的内容,请执行以下操作: Respo

我正在构建一个LaravelPHPAPI,以供Delphi2007使用。 基本上,我在Delphi中执行POST,在PHP中验证字段。如果验证失败,我需要返回代码422以及验证错误数组

在Delphi中,我使用Indy10。在其中,我有一个类型为TIdHTTP的客户机

要发布此帖子,我需要:

Client.Post(sFullEndPoint, Request, Response);
要获取代码422:

Client.ResponseCode;
要获取响应的内容,请执行以下操作:

Response.DataString;
在PHP中,如果我只返回一个错误数组,作为return$errors,我可以用Response.DataString在Delphi中处理它,问题是我不知道响应代码,因为它将是200。 如果在PHP中返回response$errors,422,Delphi在response中找不到$errors的值


我需要获取HTTP代码和响应主体。有人能帮我吗?

您可以在php中设置http响应代码,如reference::

同样,在laravel中,您也可以这样做:

return response('Your output string', 200)->header('Content-Type', 'text/plain');
但我建议您将响应作为json传递,并添加一些关于错误的信息,或者…:

$errors = [
    [
        'error_code'=>1312,
        'error_message'=>'name is empty'
    ]
];
return Response::json($errors, 201); // Status code here
$errors = [
    [
        'error_code'=>1312,
        'error_message'=>'name is empty'
    ]
];
return Response::json($errors, 201); // Status code here