gpt4 book ai didi

delphi-xe5 - 如何在 Delphi 中发出 HTTP 补丁请求

转载 作者:行者123 更新时间:2023-12-03 23:29:22 28 4
gpt4 key购买 nike

这个问题是关于在 Delphi XE5 中构建的应用程序。

我正在与第三方合作提供一个应用程序,该应用程序允许用户通过向第三方 API 发送 HTTP 消息来更新 JSON 格式的信息。如果我将用户信息分成单个对象,我可以使用 POST 方法,但由于单个事件的数量,该过程很慢。如果我对包含多个对象的文件执行批量发布,速度会快得多,但 api 要求我在上传文件时使用 PATCH 动词而不是单个对象。我可以使用 curl 这样做,但我想避免必须在每个用户系统上安装 curl 才能这样做。

有什么方法可以在 Delphi 中使用 PATCH 动词吗? Indy 似乎不支持 PATCH。

最佳答案

如果您使用的是最新版本的 Indy 10,TIdHTTP 有 2 个重载的 Patch() 方法和一个 Response.AcceptPatch 5 个月前添加的属性(用于 Embarcadero 的 REST 客户端):

procedure Patch(AURL: string; ASource, AResponseContent: TStream);
function Patch(AURL: string; ASource: TStream): string;

property AcceptPatch: string;

如果您使用的是旧版本的 Indy,您可以调用 TIdHTTP.DoRequest() 方法来使用自定义动词发送请求。它被声明为 protected,因此您必须使用访问器/后代类来访问它,例如:

type
TIdHTTPAccess = class(TIdHTTP)
end;

TIdHTTPAccess(IdHTTP1).DoRequest('PATCH', URL, SourceData, nil, []);

关于delphi-xe5 - 如何在 Delphi 中发出 HTTP 补丁请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24556265/

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