InternetSetCookie返回ERROR_INVALID_OPERATION

时间:2015-07-14 13:59:53

标签: c# wininet

我正试图在我的机器上过期cookie。当我调用wininet.dll InternetSetCookie时,它会返回FALSE,错误代码为4317,这是通用ERROR_INVALID_OPERATION

[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetCookie(string lpszUrlName, string lpszCookieName, string lpszCookieData);

public void Main()
{
     InternetSetCookie("http://example.com","cookieName","somevalue;expires=Mon, 01 Jan 0001 00:00:00 GMT")
}

无论如何都可以获得有关哪些操作无效的更多信息?

1 个答案:

答案 0 :(得分:0)

  

无论如何都可以获得有关哪些操作无效的更多信息?

不,没有。

但是,我收到了ERROR_INVALID_OPERATION,因为我正在尝试设置已设置的Cookie(我无法使用InternetSetCookie()编辑Cookie)。我必须使用此function清除所有Cookie。你需要先声明它:

[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet,int dwOption,IntPtr lpBuffer, int lpdwBufferLength);

然后您可以按以下方式使用它来清除Cookie(Note that 42 is INTERNET_OPTION_END_BROWSER_SESSION):

bool isCleared=InternetSetOption(IntPtr.Zero, 42, IntPtr.Zero, 0);