我正在使用PHP创建一个Web服务,并使用Tika将文件拖放到文本中。最初,我在外部shell中通过Tika处理每个文件(很好用于开发,但不能扩展),但我现在尝试在服务器模式下使用Tika:
java -jar /path/to/tika-1.3-app.jar -s 5150 &
我能够看到正在侦听的端口,并使用'nc'发送文件/接收已解析的文本,但是,当尝试通过'curl'时它只是挂起并且永远不会返回。在详细模式下,我可以看到文件上传完成。我已经尝试了-T和-F,我看到的只是“*等待100-continue”。
我错过了一个参数,还是还有一个标题要另外发送?目标是使用主PHP脚本中的cURL来发出请求(目前也不起作用),所以如果总体上有更好的方法,请分享。
答案 0 :(得分:3)
有一个非常简单的原因,为什么Tika App Network Server不能很好地与Curl一起玩 - 它不是基于HTTP的!这是一个非常简单的基于网络的协议,通常用于netcat或Tika App客户端,用于测试/演示/原型设计。它并不是真正推荐用于生产。
相反,你应该使用功能更全面的Tika JAXRS Server?后者提供了更多选项,完全是RESTful。您可以很好地使用curl(以及任何其他HTTP客户端),并且有很多examples on the wiki with curl可以使用。
Tika JAXRS Server通过RESTful HTTP调用公开各种Tika函数(文本提取,xhtml,元数据等),并且是通过网络将Tika与非Java应用程序接口的一般推荐方法。