Cookie大小限制。大饼干

时间:2016-10-06 14:57:13

标签: delphi cookies webrequest isapi-extension

我正在使用ISAPI DLL并遇到一种情况,即如果总cookie大小超过4096字节,则DLL的TWebRequest.Cookie根本不显示任何cookie。有没有办法处理大饼干?

1 个答案:

答案 0 :(得分:0)

在Delphi中,没有办法,除非你实现自己的ISAPI层(IntraWeb所做的事情)。基于内置ISAPI层(TISAPIRequest / TISAPIResponse)的所有内容都无法处理它,因为它从请求中检索cookie字段的方式。方法是TISAPIRequest.GetFieldByName()(单位Web.Win.IsapiHTTP):

function TISAPIRequest.GetFieldByName(const Name: AnsiString): AnsiString;
var
  Buffer: array[0..4095] of AnsiChar;
  ...
begin
  ...
end;

请注意,Buffer var - 它将获得实际数据 - 限制为4096字节。这就是为什么你只能在cookie中收到这么多数据的原因。 我不知道如何接收更多数据,除非您将其拆分为多个cookie。您还可以使用自定义字段发送数据(这些字段更容易从浏览器端创建/操作),例如&# 34; X-Example-Your-Data:abcde" (也限于4096字节)。 您可以使用相同的GetFieldByName()方法检索此数据。