gpt4 book ai didi

delphi - 如何使用 IHTTPNegotiate 添加额外的 http header ?

转载 作者:行者123 更新时间:2023-12-03 15:13:33 26 4
gpt4 key购买 nike

如何使用 IHTTPNegotiate 向请求添加额外的 header ?我添加了接口(interface),但函数 BeginningTransaction & OnResponse 从未被调用。

TNameSpaceHandler = class(TComObject, IInternetProtocol, IHttpNegotiate)  
...
function BeginningTransaction(szURL, szHeaders: LPCWSTR; dwReserved: DWORD;
out szAdditionalHeaders: LPWSTR): HResult; stdcall;
function OnResponse(dwResponseCode: DWORD; szResponseHeaders, szRequestHeaders: LPCWSTR;
out szAdditionalRequestHeaders: LPWSTR): HResult; stdcall;
...
end;

最佳答案

我默默地假设您通过实现 IInternetProcol IInternetProtocolSinkIInternetBindInfo 来拦截流量接口(interface),并调用原始的 IInternetProtocol 来完成工作。在这种情况下,了解谁调用谁的方向非常重要。

如果原始处理程序需要附加 header ,它将首先将您的 IInternetProtocolSink 转换为 IServiceProvider 接口(interface)(使用 QueryInterface),然后调用IHttpNegotiate 实例的 QueryService。为了方便起见,您可以添加当前对象实例,并在同一对象上实现 IHttpNegotiate,但这不是必需的。

IHttpNegotiateBeginTransaction方法被调用时,在ProtSink上获取一个IHttpNegotiate实例开始调用,调用 BeginTransaction 并添加 header ,然后将其传递给调用者。

关于delphi - 如何使用 IHTTPNegotiate 添加额外的 http header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19278466/

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