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
时如何获取状态码?
我发现这篇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
);