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

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

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

我正在使用TMS WEB Core中的TWebHttpRequest组件进行API调用,但不清楚如何获取响应的状态码(例如200=成功、403=禁止访问、404=未找到等)。

以下是我当前的调用代码:

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;

解决方案

你可以直接通过Execute回调中的AReq参数(TJSXMLHttpRequest类型)获取响应状态码和相关信息:

  • AReq.status:返回数字类型的HTTP状态码(如200、403、404)
  • AReq.statusText:返回对应状态码的文本描述(如"OK"、"Forbidden")

修改回调逻辑即可实现状态码的获取与处理:

Email.Execute(
  procedure(AResponse: string; AReq: TJSXMLHttpRequest)
  var
    StatusCode: Integer;
    StatusMsg: string;
  begin
    try
      StatusCode := AReq.status;
      StatusMsg := AReq.statusText;

      // 根据状态码处理不同业务场景
      case StatusCode of
        200: ShowMessage('邮件发送成功:' + AResponse);
        403: ShowMessage('权限不足,无法发送邮件');
        404: ShowMessage('邮件服务端点未找到');
        500: ShowMessage('服务器内部错误:' + StatusMsg);
      else
        ShowMessage('请求失败,状态码:' + IntToStr(StatusCode) + ',信息:' + StatusMsg);
      end;
    finally
      Email.Free;
    end;
  end
);

另外建议用try...finally包裹资源释放逻辑,避免异常场景下的内存泄漏。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:40:01