組み込みルーチンHttpQueryInfoは、実際のバイトではなく文字列を返します。通常、それは問題ではありません。
ただし、最近、サーバーがリダイレクトを発行する問題が発生し始めました。ロケーションヘッダーフィールドに、パーセンテージエンコードされていないUnicode /または?を含むURLが含まれています。文字。これを回避する方法はありますか?
var
vContent_Wide: WideString;
begin
vBufferSize := 4096;
GetMem(vBufferPtr, vBufferSize);
while True do
begin
TmpFakeCardinal := 0;
vErrorNone := HttpQueryInfo(
hHttpOpen_Request,
HTTP_QUERY_RAW_HEADERS_CRLF,
vBufferPtr,
vBufferSize,
TmpFakeCardinal
);
if (vErrorNone = False) then
begin
vErrorID := GetLastError;
if (vErrorID = ERROR_INSUFFICIENT_BUFFER) then
begin
FreeMem(vBufferPtr);
GetMem(vBufferPtr, vBufferSize);
end
else Break;
end
else
begin
vContent_Wide := PWideChar(vBufferPtr);
Result := vContent_Wide;
Break;
end
;
end;
FreeMem(vBufferPtr, vBufferSize);