`

[HtmlParser]bug提交(含解决方案)--A bug when set cookies

    博客分类:
  • java
阅读更多

htmlParser在设置cookies时存在bug,对于相同的domain,不能设置多个cookies.下面时偶提交的bug内容及解决办法.偶英语很烂--大家别笑话.:P

There can't set many cookies to a domain,for example:

public void testSetCookies() throws Exception
{
StringurlString
= " http://sourceforge.net/projects/htmlparser " ;
Parserparser
= this .buildParser(urlString);

}

private ParserbuildParser(StringurlString) throws
Exception
{
ConnectionManagermanager
=
Parser.getConnectionManager();
Cookiecookie
= new Cookie( " name1 " , " value1 " );
manager.setCookie(cookie,
" sourceforge.net " );

cookie
= new Cookie( " name2 " , " value2 " );
manager.setCookie(cookie,
" sourceforge.net " );

return new Parser(urlString);
}


only the first cookie was set to the
domain "sourceforge.net".

This bug comes with the
method:ConnectionManager.setCookie (Cookie cookie,
String domain),there can't add a new cookie to a exist
domain.

It is ok if repleace the method with under codes :

public void setCookie(Cookiecookie,Stringdomain)
{
Stringpath;
Vectorcookies;
Cookieprobe;

if ( null != cookie.getDomain())
domain
= cookie.getDomain();
path
= cookie.getPath();
if ( null == mCookieJar)
mCookieJar
= new Hashtable(); // turnon
cookieprocessing
cookies
= (Vector)mCookieJar.get(domain);
if ( null != cookies)
{
boolean isNewCookie = true ;

for ( int j = 0 ;j < cookies.size();j ++ )
{
probe
= (Cookie)cookies.elementAt(j);


if (probe.getName().equalsIgnoreCase
(cookie.getName()))
{
if (isNewCookie == true )isNewCookie =
false ;
// wekeeppathssortedmostspecificto
least
if (probe.getPath().equals(path))
{
cookies.setElementAt(cookie,j);
//
replace
break ;
}
else if (path.startsWith(probe.getPath()))
{
cookies.insertElementAt(cookie,j);
break ;
}
}
}

if (isNewCookie == true )
{
cookies.addElement(cookie);
}
}
else
{
// newcookielistneeded
cookies = new Vector();
cookies.addElement(cookie);
mCookieJar.put(domain,cookies);
}
}

分享到:
评论

相关推荐

    前端开源库-parse5-htmlparser2-tree-adapter

    在`parse5-master`这个压缩包中,很可能包含了parse5库的源码和相关资源,你可以通过阅读源码、查看示例和文档来更深入地理解这个库的工作原理,以及如何有效地使用`parse5-htmlparser2-tree-adapter`。同时,熟悉这...

    HTMLParser-2.0-SNAPSHOT

    这个"HTMLParser-2.0-SNAPSHOT"版本可能是HTMLParser的一个开发版本或测试版本,包含了最新的特性和改进。 HTMLParser提供了丰富的API,使得开发者可以方便地操作HTML元素,如标签、属性和文本。以下是一些关键的...

    htmlparser-c++

    首先,我们来了解HTMLParser-C++的基本原理。HTML并非一种严格的XML格式,因此解析HTML需要处理其非规范性和不确定性。HTMLParser-C++库通过解析HTML的语法特性,识别出标签、属性和文本节点,并将其转化为易于处理...

    java解析html工具htmlparser的jar包及api文档

    在提供的压缩包中,`HTMLParser-2.0-SNAPSHOT-bin`可能是可执行的二进制文件,包括了编译好的JAR文件和其他运行所需的资源。而`HTMLParser-2.0-SNAPSHOT`可能包含了源代码,这对于开发者来说是宝贵的,因为他们可以...

    HTMLParser-2.0-SNAPSHOT-bin.zip JAVA html解析库

    public static Set&lt;String&gt; extracLinks(String url, LinkFilter filter) { Set&lt;String&gt; links = new HashSet(); try { Parser parser = new Parser(url); parser.setEncoding("utf-8"); // 过滤 &lt;...

    htmlparser-1.6p.jar

    "htmlparser-1.6p.jar"是该库的特定版本,用于在Java环境中集成和使用。 HTMLParser的核心功能包括: 1. **标签和属性处理**:它可以识别并解析HTML文档中的各种标签,如`&lt;html&gt;`, `&lt;head&gt;`, `&lt;body&gt;`等,同时处理...

    htmlparser-1.2.1 jar

    htmlparser-1.2.1jar包下载htmlparser-1.2.1jar包下载

    正则表达式+_HTMLParser使用详解-2010-03-21

    正则表达式与HTMLParser是两种在处理文本数据时非常重要的工具。正则表达式(Regular Expression)是一种模式匹配语言,常用于字符串的查找、替换和提取等操作,而HTMLParser则是用来解析HTML文档结构的工具,尤其在...

    htmlparser-1.0.5.jar

    htmlparser-1.0.5.jar htmlparser-1.0.5.jar

    HtmlParser学习笔记-- htmlparser简介

    - 直接使用无参构造函数,然后调用`setURL`方法指定URL。 - 使用URL连接构造函数,直接传入URL连接对象。 - 使用静态方法`createParser`,传入HTML字符串和相应的字符集。 在处理复杂HTML文档时,开发者还可以利用...

    htmlparser

    META-INF/maven/org.htmlparser/htmlparser/pom.properties META-INF/maven/org.htmlparser/htmlparser/pom.xml org.htmlparser.Parser.class org.htmlparser.PrototypicalNodeFactory.class org.htmlparser.beans....

    node-htmlparser.zip

    const htmlparser = require("node-htmlparser"); function parseHTML(html) { const parser = new htmlparser.Parser({ onopentag: (name, attrs) =&gt; { if (name === "p") { console.log(`Found &lt;p&gt; tag with ...

    前端开源库-htmlparser-to-html

    `htmlparser-to-html`是一个针对这个需求的开源库,它专注于将`htmlparser`或`htmlparser2`解析生成的JSON格式数据转换回原始的HTML字符串。下面我们将深入探讨这个库的核心功能、应用场景以及如何使用。 ### 核心...

    HtmlParser-2.0 API

    HtmlParser-2.0 API ,chm格式,方便使用

    HTMLParser-2.0-API.CHM

    HTMLParser-2.0-API.CHM

    HTMLParser的Jar文件

    HTMLParser的Jar文件有如下几种: htmlparser.jar filterbuilder.jar htmllexer.jar sitecapturer.jar thumbelina.jar

    HTMLParser 使用文档、jar包、以及源码

    2. **HTMLParser-2.0-SNAPSHOT-doc.zip**:这是HTMLParser库的API文档,包含了详细的Javadoc。通过解压并查阅这个文档,开发者可以了解每个类、方法和接口的功能,这对于理解和使用库中的各种功能至关重要。 3. **...

Global site tag (gtag.js) - Google Analytics