Wininet InternetGetCookie получает пустые данные cookie

в настоящее время я работаю над получением данных cookie с помощью Csharp. Я использую DLLImport для вызова InternetGetCookie в wininet.dll, но когда я пытаюсь, функции возвращают ERROR_INSUFFICIENT_BUFFER (код ошибки 122).

может ли один помочь мне с этим ?

это код ссылки Dll:

[DllImport("wininet.dll", SetLastError = true, CharSet = CharSet.Auto, EntryPoint="InternetGetCookie")]
        public static extern bool InternetGetCookie(string lpszUrl, string lpszCookieName,
            ref StringBuilder lpszCookieData, ref int lpdwSize);

и это, как я называю функцию:

InternetGetCookie("http://example.com", null, ref lpszCookieData, ref size)

спасибо.

1 ответов


возвращаемое значение говорит вам, что буфер, который вы предоставили функции, недостаточно велик, чтобы содержать данные, которые он хочет вернуть. Вам нужно позвонить InternetGetCookie дважды: один раз, проходя в размере 0, чтобы узнать, насколько большим должен быть буфер; и второй раз, с буфером нужного размера.

кроме того, подпись P / Invoke неверна;StringBuilder не должно быть