关于C#保存cookie的问题

haixin3036 haixin3036 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
用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信息

ppblog

使用Cookie导致乱码问题的解决方法(C#)

这通常是因为Cookie中存储的数据包含非ASCII字符,而默认情况下,Cookie的值会进行URL编码。因此,当我们从Cookie中读取值时,需要进行相应的解码操作,以正确地获取原始数据。为了解决Cookie乱码的问题,我们可以使用System.Web命名空间中的HttpUtility类提供的方法进行编码和解码操作。方法对要存储在Cookie中的值进行URL编码,然后将编码后的值设置为Cookie的值。类提供的编码和解码方法,我们可以确保Cookie中的数据在传输和读取过程中保持正确的格式。

雪域Code

C#将浏览过的产品信息保存在Cookie中并读取

在asp.net中,用C#将浏览过的产品信息保存在Cookie中。最近在做一个商城,这里把常用的一些方法那出来分享一下,比如说将最近浏览过的产品详细信息保存在cookie中,这样即可以减轻服务器的负担(不必每次都到服务上读取数据),而且读取也方便。

summer123813

基于c#实现cookie和session的登陆技术

vs2005环境下,压缩包里包括Web和winform2种。为实现cookie技术提供一定的参考价值!

chenwenwu18

C#清除WebBrowser中Cookie缓存的方法

主要介绍了C#清除WebBrowser中Cookie缓存的方法,涉及C#针对WebBrowser控件的操作技巧,非常简单实用,需要的朋友可以参考下

weixin_38543460
评论 1
收藏 已收藏
分享
返回顶部
haixin3036
C# 111,128 成员 642,537 内容