关于C#保存cookie的问题
用C#实现本地编辑文章,提交网站后台发布的功能。 cookie功能不能实现,代码如下,问题出在哪呢?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace cookie登陆
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public CookieContainer cook = new CookieContainer();
private void button1_Click(object sender, EventArgs e)
{
string url = "http://localhost/admin/login.php";
byte[] data = Encoding.UTF8.GetBytes("gotopage=%2Fjianongadmin%2F&dopost=login&adminstyle=newdedecms&userid=admin&pwd=admin&sm1=");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
//定义表头信息
request.CookieContainer = cook;//cookie容器
request.Method = "POST";
request.Accept = "text/html, application/xhtml+xml, */*";
request.Referer = "http://localhost/admin/login.php?gotopage=%2Fjianongadmin%2F";
request.Headers.Add("Accept-Language", "zh-CN");
request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)";
request.ContentType = "application/x-www-form-urlencoded";
request.Host = "www.goodfarmer.com";
request.ContentLength = data.Length;
request.Headers.Add("Cache-Control", "no-cache");
//提交数据流
Stream s = request.GetRequestStream();
s.Write(data, 0, data.Length);
//处理返回数据
HttpWebResponse resphone = (HttpWebResponse)request.GetResponse();
StreamReader read =new StreamReader( resphone.GetResponseStream());
textBox1.Text = read.ReadToEnd();
UpdateCookie(ref cook, resphone.Cookies); //写入cookie
}
private void button2_Click(object sender, EventArgs e) //通过保存的Cookie访问发布文章的后台页面
{
string url = "http://localhost/admin/article_add.php?channelid=1&cid=0";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.CookieContainer = cook;
request.Method = "GET";
request.Accept = "text/html, application/xhtml+xml, */*";
request.Headers.Add("Accept-Language", "zh-CN");
request.Accept = "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
request.Headers.Add("Accept-Language", "zh-cn");
request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)";
request.Host = "www.goodfarmer.com";
HttpWebResponse respone =(HttpWebResponse) request.GetResponse();
StreamReader read = new StreamReader(respone.GetResponseStream(),Encoding.UTF8);
textBox1.Text = read.ReadToEnd();
}
/// <summary>
/// 更新Cookie方法
/// </summary>
/// <param name="mycookie"></param>
/// <param name="newcookie">获取的新cookie</param>
static void UpdateCookie(ref CookieContainer mycookie, CookieCollection newcookie)
{
if (newcookie.Count > 0)
{
foreach (Cookie coo in newcookie)
{
mycookie.Add(coo);
}
}
}
}
}
...全文
相关推荐
在C#中可以使用CookieContainer 对象来保存登录后的Cookie信息
在C#中可以使用CookieContainer 对象来保存登录后的Cookie信息
使用Cookie导致乱码问题的解决方法(C#)
这通常是因为Cookie中存储的数据包含非ASCII字符,而默认情况下,Cookie的值会进行URL编码。因此,当我们从Cookie中读取值时,需要进行相应的解码操作,以正确地获取原始数据。为了解决Cookie乱码的问题,我们可以使用System.Web命名空间中的HttpUtility类提供的方法进行编码和解码操作。方法对要存储在Cookie中的值进行URL编码,然后将编码后的值设置为Cookie的值。类提供的编码和解码方法,我们可以确保Cookie中的数据在传输和读取过程中保持正确的格式。
C#将浏览过的产品信息保存在Cookie中并读取
在asp.net中,用C#将浏览过的产品信息保存在Cookie中。最近在做一个商城,这里把常用的一些方法那出来分享一下,比如说将最近浏览过的产品详细信息保存在cookie中,这样即可以减轻服务器的负担(不必每次都到服务上读取数据),而且读取也方便。
基于c#实现cookie和session的登陆技术
vs2005环境下,压缩包里包括Web和winform2种。为实现cookie技术提供一定的参考价值!
C#清除WebBrowser中Cookie缓存的方法
主要介绍了C#清除WebBrowser中Cookie缓存的方法,涉及C#针对WebBrowser控件的操作技巧,非常简单实用,需要的朋友可以参考下


