如何获取 TMS WEB Core 中 TWebHttpRequest 响应的状态代码?

问题描述 投票:0回答:1

我正在使用 TMS WEB Core 中的

TWebHttpRequest
组件进行 API 调用,但我不确定如何获取响应的状态代码。

这是我使用

TWebHttpRequest
组件进行 API 调用的当前代码:

procedure SendEmail(Sender, MailSubject, MailBody, recipients, cc: String);
var
  Email: TWebHttpRequest;
begin
  Email := TWebHttpRequest.Create(nil);

  Email.URL := 'MY_ENDPOINT_URL_FOR_SENDING_EMAIL...';

  Email.Command := httpPOST;
  Email.Headers.Clear;
  Email.Headers.AddPair('Content-Type','application/json');
  Email.PostData := '{' +
    '"Sender": "' + Sender + '",' +
    '"MailSubject": "' + MailSubject + '",' +
    '"MailBody": "' + MailBody + '",' +
    '"recipients": "' + recipients + '",' +
    '"cc": "' + cc + '"' +
  '}';

  Email.Execute(
    procedure(AResponse: string; AReq: TJSXMLHttpRequest)
    begin
      Email.Free;
    end
  );
end;

我需要的是响应中的状态和/或错误代码(200 = ok,403 =禁止,404 = not_found等)

使用

TWebHttpRequest
时如何获取状态码?

delphi http-status-codes tms-web-core
1个回答
0
投票

我发现这篇post解释了如何获取状态代码,他们是这样说的:

procedure TForm1.WebHttpRequest1RequestResponse(Sender: TObject;
  ARequest: TJSXMLHttpRequestRecord; AResponse: string);
begin
  if (ARequest.req.Status = '404') then
     ...
  if (ARequest.req.Status = '200') then
     ...
end;

但这对我来说没有用,因为我想要

Execute
过程中的状态代码。所以我最终发现你也可以通过
AReq: TJSXMLHttpRequest
参数获取状态代码。

  • Req.Status
    用于状态代码(200、403、404 等)
  • AReq.StatusText
    用于状态文本(好的、禁止、未找到等)
Email.Execute(
  procedure(AResponse: string; AReq: TJSXMLHttpRequest)
  begin
    console.log('Status: ' + AReq.Status.ToString);
    console.log('StatusText: ' + AReq.StatusText);
  end
);
© www.soinside.com 2019 - 2024. All rights reserved.