小编Geo*_*rge的帖子

Apache Tika和File访问而不是Java Input Stream

我希望能够创建一个新的Tika解析器来从文件中提取元数据.我们已经在使用Tika,元数据提取将始终如一.

我想我已经遇到了Tika的这个问题/增强请求:

允许将文件或内存缓冲区传递给解析器

我有一个控制台c ++可执行文件,它接受输入文件的路径,然后输出它找到的元数据,每行包含名称/值对.
c ++代码依赖于在访问数据时期望文件路径的库.用Java重写这个可执行文件是不可能的.我认为把它插入Tika是相当容易的.但是Tika解析器需要使用Java,并且需要重写的Tika解析器方法需要一个开放的输入流:

void parse(InputStream流,ContentHandler处理程序,元数据元数据,ParseContext上下文)

所以我想我唯一的解决方案是获取输入流并将其写入临时文件,然后处理写入的文件,然后最终清理文件.我不想跟一个临时文件搞乱,然后可能不必担心临时文件的清理应该的东西出问题,它不会被删除.

有没有人对如何干净地处理这样的事情有一个聪明的想法?

java inputstream file apache-tika

5
推荐指数
1
解决办法
1780
查看次数

用于HttpWebRequest的Url被特殊字符截断

我需要调用的Web服务的URL包括一个包含自由格式文本的参数.我不确定为什么它是这样设计的,因为它是使用POST发送的,并且包含许多字段作为POST的一部分.但是,它给我带来了一个问题.

对于某些字符(如井号和<>),URL会在遇到问题字符时被截断.我是HTML编码参数的文本,但问题仍然存在.我可以看到像>这样的特殊字符被编码为gt;.我认为编码字符串中的分号在某种程度上是个问题.

我把一个嗅探器接收到服务器上的传入请求,我发现URL已被截断.

在服务器上我看到类似的东西:

    ...?extraData=kjfkfjslkj
Run Code Online (Sandbox Code Playgroud)

代替:

    ...?extraData=kjfkfjslkj#kfjkdlsfj
Run Code Online (Sandbox Code Playgroud)

代码是这样的:

    using System.Web;
    ....
    String strExtra="kjfkfjslkj#kfjkdlsfj";
    strURL = strStuff + "?extraData=" + System.Web.HttpUtility.HtmlEncode(strExtra);
    HttpWebRequest oRequest = (HttpWebRequest)WebRequest.Create(new Uri(strURL));
    oRequest.Method = httpMethod;
    oRequest.ContentType = "application/atom+xml";
    ...
    using (WebResponse oResponse = oRequest.GetResponse())
    {
    ...
    }
Run Code Online (Sandbox Code Playgroud)

c# urlencode httpwebrequest

2
推荐指数
1
解决办法
4211
查看次数

标签 统计

apache-tika ×1

c# ×1

file ×1

httpwebrequest ×1

inputstream ×1

java ×1

urlencode ×1