gpt4 book ai didi

delphi - 如何使用 TIdHttp 获取 DELETE 的响应文本?

转载 作者:行者123 更新时间:2023-12-03 14:48:09 25 4
gpt4 key购买 nike

Indy 的 TIdHttp 类在最新版本中具有 Delete() 例程。但由于某种原因,这是一个过程,而不是一个函数。 Put()Get()等都是返回响应体内容的函数。作为字符串或将其传递到 TStream。这对于 Delete() 来说是不可能的,这与 DELETE 的定义相矛盾:

A successful response SHOULD be 200 (OK) if the response includes an entity describing the status, 202 (Accepted) if the action has not yet been enacted, or 204 (No Content) if the action has been enacted but the response does not include an entity.

Source .

然后我尝试使用 GetResponse(),但这只是优雅地关闭了我的连接,而没有填写响应。

那么如何从 DELETE 响应中读取响应正文的内容?

最佳答案

您需要更新您的 Indy 安装。 2013 年 9 月,在 SVN 修订版 5056 中针对此功能请求添加了用于获取 DELETE 方法响应的重载:

Add overloads for TIdHTTP Delete() and Options() methods that can output a response's message body

如果您出于某种原因不想更新 Indy,可以对 TIdHTTP 组件进行子类化,并添加一个将响应流传递给 DoRequest 方法的方法,例如:

type
TIdHTTP = class(IdHTTP.TIdHTTP)
public
procedure DeleteEx(AURL: string; AResponseContent: TStream);
end;

implementation

{ TIdHTTP }

procedure TIdHTTP.DeleteEx(AURL: string; AResponseContent: TStream);
begin
DoRequest(Id_HTTPMethodDelete, AURL, nil, AResponseContent, []);
end;

关于delphi - 如何使用 TIdHttp 获取 DELETE 的响应文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27839675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com