C#如何通过Socket的方式获取httponly cookie
2013-07-20 14:16
696 查看
正常情况下C#可以使用HttpWebRequest、HttpWebResponse和CookieContainer类来获取Cookie,但是当Cookie设置为httponly,我们就不能用上面的方法获取。这时候可以用Socket来模拟http提交。具体如下:
1.先取得默认DNS服务器地址:
2.模拟http请求,设置http头:
3.发送请求
4.获取服务器的返回信息
5.提取Cookie内容
提取后需要做的就是解析Cookie就是一些字符串的处理。
附上网络编程基础知识地址:
http://www.7fenx.com/%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.html
初接触网络编程,如果哪里说错请指出。
欢迎加我QQ交流:1780242721,请注明:“博客园”
本文如需转载请注明出处。
1.先取得默认DNS服务器地址:
IPEndPoint endPoint; IPAddress IpList; IpList = Dns.GetHostAddresses("www.7fenx.com")[0];
2.模拟http请求,设置http头:
StringBuilder sendString=new StringBuilder(200); sendString.Append("POST "+ "/" + " HTTP/1.1\r\n"); sendString.Append("Accept: */*\r\n"); sendString.Append("Host: "+host+"\r\n"); sendString.Append("User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36\r\n"); sendString.Append("Content-Type: application/x-www-form-urlencoded\r\n"); sendString.Append("Content-Length: "+sendData.Length+"\r\n"); sendString.Append("Connection: keep-alive\r\n\r\n"); sendString.Append(postData+"\r\n");
3.发送请求
byte[] sendBytes = Encoding.GetEncoding(endcoding).GetBytes(sendString.ToString()); int httpPoint = 80; endPoint = new IPEndPoint(ip, httpPoint); socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Connect(endPoint); socket.Send(sendBytes,sendBytes.Length,0);
4.获取服务器的返回信息
Byte[] byteReceive = new Byte[1024]; Int32 bytes = socket.Receive(byteReceive); string str = Encoding.Default.GetString(byteReceive, 0, bytes);
5.提取Cookie内容
Regex rgxCookie = new Regex("Set-Cookie:.*"); MatchCollection cookies = rgxCookie.Matches(cookie);
提取后需要做的就是解析Cookie就是一些字符串的处理。
附上网络编程基础知识地址:
http://www.7fenx.com/%E7%BD%91%E7%BB%9C%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86.html
初接触网络编程,如果哪里说错请指出。
欢迎加我QQ交流:1780242721,请注明:“博客园”
本文如需转载请注明出处。
相关文章推荐
- C#如何通过SOCKET的方式获取HTTPONLY COOKIE
- C#中如何通过HTTP协议的不同请求方式获取数据
- VB通过webbrowser获取httponly的cookie
- 如何获取HttpOnly Cookie
- gprs连接成功以后,如何通过socket获取网页html内容(C#)
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- C#通过http Get方式获取返回页中的XML
- 如何获取HttpOnly Cookie
- (转)在C#中使用WIA获取扫描仪数据(四、通过编程方式扫描图像)
- VC++通过HTTP方式获取网页源代码
- applet遇到http-only cookie的处理方式
- 【C#】如何让字典Dictionary通过value获取对应的key值
- 后台通过HttpServletRequest对象获取页面表单传递过来的参数的方式
- VC通过HTTP方式获取网页 - 四度专栏 - CSDNBlog
- .net 获取浏览器Cookie(包括HttpOnly)实例分享
- .net 获取浏览器Cookie(包括HttpOnly)
- VC++6.0 通过HTTP方式获取网页 OpenURL
- c# 如何通过反射 获取\设置属性值、
- 如何在代理环境下发送邮件?——C#实现Socket代理方式的邮件发送