一个可以通过URLConnection读写Cookie的类

博客介绍了一个可操作Java程序中打开网站Cookie的类。通过该类能了解Cookie存储方式,还提供了写入、读取、查看和添加Cookie等方法,如writeCookies方法可将Cookie写入URL连接,readCookies方法能从连接读取Cookie。

?这个类,可以操作在java程序中打开的网站的cookie,有些时候还是十分有用的

并且通过这个类,也可以了解一下cookie的存储方式

// Changes by: Saar Machtinger, me@cawa.com
import java.net.*;
import java.io.*;
import java.util.*;

class CookiesInJava {
?static Hashtable theCookies = new Hashtable();
?/**
? * Send the Hashtable (theCookies) as cookies, and write them to
? *? the specified URLconnection
? *
? * @param?? urlConn? The connection to write the cookies to.
? * @param?? printCookies? Print or not the action taken.
? *
? * @return? The urlConn with the all the cookies in it.
?*/
?public URLConnection writeCookies
???? (URLConnection urlConn, boolean printCookies){
?? String cookieString = "";
?? Enumeration keys = theCookies.keys();
?? while (keys.hasMoreElements()) {
???? String key = (String)keys.nextElement();
???? cookieString += key + "=" + theCookies.get(key);
???? if (keys.hasMoreElements())
??????? cookieString += "; ";
???? }
?? urlConn.setRequestProperty("Cookie", cookieString);
?? if (printCookies)
????? System.out.println("Wrote cookies:/n?? " + cookieString);
?? return urlConn;
?? }

?/**
? * Read cookies from a specified URLConnection, and insert them
? *?? to the Hashtable
? *? The hashtable represents the Cookies.
? *
? * @param?? urlConn? the connection to read from
? * @param?? printCookies? Print the cookies or not, for debugging
? * @param?? reset? Clean the Hashtable or not
?*/
?public void readCookies(URLConnection urlConn, boolean printCookies,
???????????????????? boolean reset){
?? if (reset)
????? theCookies.clear();
?? int i=1;
?? String hdrKey;
?? String hdrString;
?? String aCookie;
?? while ((hdrKey = urlConn.getHeaderFieldKey(i)) != null) {
???? if (hdrKey.equals("Set-Cookie")) {
??????? hdrString = urlConn.getHeaderField(i);
??????? StringTokenizer st = new StringTokenizer(hdrString,",");
??????? while (st.hasMoreTokens()) {
????????? String s = st.nextToken();
????????? aCookie = s.substring(0, s.indexOf(";"));
????????? // aCookie = hdrString.substring(0, s.indexOf(";"));
????????? int j = aCookie.indexOf("=");
????????? if (j != -1) {
???????????? if (!theCookies.containsKey(aCookie.substring(0, j))){
?????????????? // if the Cookie do not already exist then when keep it,
?????????????? // you may want to add some logic to update the stored Cookie instead.
?????????????? // thanks to rwhelan
?????????????? theCookies.put(aCookie.substring(0, j),aCookie.substring(j + 1));
?????????????? if (printCookies){
????????????????? System.out.println("Reading Key: " + aCookie.substring(0, j));
????????????????? System.out.println("??????? Val: " + aCookie.substring(j + 1));
????????????????? }
?????????????? }
???????????? }
????????? }
????? }
????? i++;
???? }
? }

?/**
? * Display all the cookies currently in the HashTable
? *
?*/
?public void viewAllCookies() {
?? System.out.println("All Cookies are:");
?? Enumeration keys = theCookies.keys();
?? String key;
?? while (keys.hasMoreElements()){
???? key = (String)keys.nextElement();
???? System.out.println("?? " + key + "=" +
???? theCookies.get(key));
???? }
?? }

?/**
? * Display the current cookies in the URLConnection,
? *??? searching for the: "Cookie" header
? *
? * This is Valid only after a writeCookies operation.
? *
? * @param?? urlConn? The URL to print the associates cookies in.
?*/
?public void viewURLCookies(URLConnection urlConn) {
?? System.out.print("Cookies in this URLConnection are:/n?? ");
?? System.out.println(urlConn.getRequestProperty("Cookie"));
?? }

?/**
? * Add a specific cookie, by hand, to the HastTable of the Cookies
? *
? * @param?? _key? The Key/Name of the Cookie
? * @param?? _val? The Calue of the Cookie
? * @param?? printCookies? Print or not the result
?*/
?public void addCookie(String _key, String _val, boolean printCookies){
?? if (!theCookies.containsKey(_key)){
????? theCookies.put(_key,_val);
????? if (printCookies){
???????? System.out.println("Adding Cookie: ");
???????? System.out.println("?? " + _key + " = " + _val);
???????? }
????? }
?? }
}

内容概要:本文系统研究了基于W-GAN(Wasserstein生成对抗网络)的光伏出力场景生成方法,并提供了完整的Python代码实现。该方法充分利用W-GAN在捕捉复杂数据分布方面的优势,能够生成具有高度真实性与时序一致性的光伏发电功率场景,有效解决了传统场景生成方法在处理非线性、非平稳光伏数据时存在的模式坍塌与分布偏差问题。研究内容涵盖网络架构设计、梯度惩罚机制引入以保障训练稳定性、损失函数优化及生成样本质量评估等关键环节,生成的场景可用于电力系统规划、运行调度、储能配置及风险评估等任务,尤其适用于高比例可再生能源接入背景下的不确定性建模需求。; 适合人群:具备一定Python编程能力、深度学习基础理论知识的研究生、科研人员,以及从事新能源发电预测、电力系统优化调度等相关领域的工程技术人员。; 使用场景及目标:①实现光伏出力不确定性建模,生成满足统计特性的典型与极端功率场景;②支撑含光伏的微电网、主动配电网的优化调度、可靠性分析与韧性评估;③作为深度学习在能源时序数据生成领域的一个典型案例,服务于教学演示与学术研究。; 阅读建议:建议结合所提供的Python代码进行动手实践,重点理解W-GAN中判别器(Critic)结构、梯度惩罚项(Gradient Penalty)的实现原理,并通过可视化手段对比原始数据与生成数据的分布特征,进一步可尝试将其与传统GAN、VAE或DDPM等生成模型在场景多样性、保真度方面进行横向比较。
代码转载自:https://pan.quark.cn/s/a4b39357ea24 **C#反编译工具dnSpy的详细说明** dnSpy是一款专门用于C#编程语言的强效反编译器,其具备广泛的功能,涵盖了反编译、调试以及代码编辑等多个方面。这款工具凭借其便捷的操作性和丰富的特性,广泛受到开发者和逆向工程从业者的青睐。本文将详细研究dnSpy的关键功能、运作机制以及其在软件开发中的实际应用。 dnSpy的关键功能之一是反编译。它能够将已编译的.NET程序集(例如DLL或EXE文件)还原为源代码形态,从而让开发者得以审视并掌握应用程序的内部构造。借助IL(中间语言)反编译技术,dnSpy能够生成与原始C#代码高度相似的代码,以便用户进行阅读和分析。不仅如此,dnSpy还兼容其他.NET语言,例如VB.NET和F#。 dnSpy的调试功能是其另一显著优势。它内含了一个功能强大的调试器,使用户可以在反编译后的代码中设置断点,检查并调整变量值,以及追踪代码的执行路径等。这对于故障排除、学习他人代码或进行安全研究都极具帮助。同时,dnSpy支持模块和程序集的热替换,即在调试期间可以即时更新代码,而无需重启应用程序。 另外,dnSpy提供了代码编辑功能,用户可以直接在反编译的代码上进行修改,并将这些更改保存回原始程序集。这种功能对于修正错误、优化代码或进行软件逆向工程研究都极为便利。 除了上述核心功能,dnSpy还拥有卓越的扩展性。它支持插件架构,允许开发者自定义并增加新的功能,如语法高亮显示、代码格式化工具等。这使得dnSpy能够根据用户的个性化需求进行定制,进一步提升了其灵活性和实用性。 在提供的压缩文件中,我们可以发现若干配置文件(例如dnSpy.exe.confi...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值