关于HttpWebResponse里拿不到Set-Cookie的问题
2014-02-17 16:12
381 查看
寒假开始的时候开始学C#,然后就试着用C#写个自动登入学校urp网站的程序,这样出了成绩直接发邮件告诉我,我就不用自己去一遍一遍登入查看了(听华科的同学说华科就是发邮件通知的,真人性化)
发邮件的话用System.Web.Mail.MailMessage mailmsg = new MailMessage();C#的话还要记得在项目的引用里添加程序集。
给mailmsg填写发件人的账号密码的时候要这么写:
其它都比较好理解。
最后再设定邮件服务器并发送:就发送出去了。
自动登入是用HttpWebRequest,具体方法可以参考http://blog.csdn.net/zhoufoxcn/article/details/6404236
但是用上述方法对于有些网站会有一些问题,我碰到的主要是两方面。
1.一些网站会根据HttpWebRequest的referer来防止盗链,所以需要添加这么一条:
2.网站是根据cookie来确定用户身份的话,登陆页面之后响应头里会拿到一个Set-Cookie,但是有时候明明已经登入了,响应头里的Set-Cookie却是空的。这是因为网页请求自动跳转了,返回的响应是跳转之后的响应,那时已经不需要返回Set-Cookie了。一个简单的解决办法是在request里禁用自动跳转:
拿到响应流之后,需要获取什么信息,用正则表达式去匹配一下就好了。
发邮件的话用System.Web.Mail.MailMessage mailmsg = new MailMessage();C#的话还要记得在项目的引用里添加程序集。
给mailmsg填写发件人的账号密码的时候要这么写:
mailmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); mailmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "username"); mailmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "password");
其它都比较好理解。
最后再设定邮件服务器并发送:就发送出去了。
SmtpMail.SmtpServer = "smtp.163.com"; SmtpMail.Send(mailmsg);
自动登入是用HttpWebRequest,具体方法可以参考http://blog.csdn.net/zhoufoxcn/article/details/6404236
但是用上述方法对于有些网站会有一些问题,我碰到的主要是两方面。
1.一些网站会根据HttpWebRequest的referer来防止盗链,所以需要添加这么一条:
if (!string.IsNullOrEmpty(refer)) request.Referer = refer;
2.网站是根据cookie来确定用户身份的话,登陆页面之后响应头里会拿到一个Set-Cookie,但是有时候明明已经登入了,响应头里的Set-Cookie却是空的。这是因为网页请求自动跳转了,返回的响应是跳转之后的响应,那时已经不需要返回Set-Cookie了。一个简单的解决办法是在request里禁用自动跳转:
request.AllowAutoRedirect = false;
拿到响应流之后,需要获取什么信息,用正则表达式去匹配一下就好了。
相关文章推荐
- 关于使用HttpWebRequest和HttpWebResponse时中文乱码问题
- 关于 S40 Http set-cookie的问题
- C#中关于搜狗地图web服务api的httpresponse中回应json中文乱码的问题 Encoding
- 关于请求跨域及response中Set-Cookie无效问题记录
- HttpWebRequest.CookieContainer与HttpWebResponse.Cookies的区别和联系
- 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
- 关于wp7中http的GetResponse抛异常的问题
- 解决httpwebrequest无法通过使用代理的局域网获取response的问题
- 关于UrlHttpConnection.setRequestProperty()的调用顺序问题的验证
- 关于HttpWebRequest和HttpWebResponse的应用
- android httpclient 与 webView cookie同步问题
- 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
- 关于UrlHttpConnection.setRequestProperty()的调用顺序问题的验证
- asp.net mvc 中[Authorize]在IE9以上版本关于FormsAuthentication.SetAuthCookie无效的问题 解决方案
- 关于android webview 设置cookie的问题
- 关于JavaWeb中 Response返回中文乱码的问题
- 关于web中的session以及cookie验证的问题
- 关于python 的django-forbidden-csrf-cookie-not-set问题
- [PHP开发] 关于header setcookie session_start 3个函数的怪问题
- 关于网络爬虫httpUrlConn.getResponseCode()取不到值得问题