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
не должно быть