java获取httponly_使用HttpWebRequest获取HttpOnly cookie

我正在尝试使用.NET的HttpWebRequest POST方法以编程方式登录站点(代码用C#编写) . 最初我将请求发送到登录页面,将响应cookie保存到CookieContainer,并使用登录详细信息(email =“MyEmail”&pass =“MyPassword”)进行第二次HttpWebRequest编码并流式传输到请求 .

由于我没有设法登录,我使用Fiddler检查了登录请求附带的cookie,发现一些cookie被标记为HttpOnly . 也就是说,这些cookie不会出现在先前请求的任何响应头中(不用说它们也不会出现在脚本中(html或js)) .

我做了一些研究并将Wininet.dll库导入到我的代码中,如here所述 . 这是我的代码:

class CookieReader

{

static int INTERNET_COOKIE_HTTPONLY = 0X000020000;

[DllImport("Wininet.dll", SetLastError = true)]

static extern bool InternetGetCookieEx(string url, string cookieName, StringBuilder cookieData, ref int size, int flags, IntPtr pReserved);

public static string GetHttpOnly(string url)

{

int size = 1024;

StringBuilder builder = new StringBuilder(size);

if (InternetGetCookieEx(url, null, builder, ref size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero))

{

return builder.ToString();

}

else

return null;

}

}

我有两个问题:首先,对于任何URL,InternetGetCookiesEx方法总是返回false . 由于我是C#的新手,我的第一个怀疑是我的代码出了问题 .

其次,我无法想出一种方法将HttpWebRequest POST与InternetGetCookieEx方法结合起来 . 这个方法只获取一个url作为参数,没有任何登录细节,我不知道它是如何产生请求的(我想它确实如此) .

我希望我已经清楚了...建议将非常(非常感谢)赞赏 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值