我试图使用Net :: HTTP :: Put调用Tika server。问题是该调用总是通过Content-Type
,这使得Tika无法运行检测器(我想要的),然后由于Content-Type
的默认application/x-www-form-urlencoded
而窒息。 Tika docs建议不要使用它。
所以,我有以下内容:
require 'net/http'
port = 9998
host = "localhost"
path = "/meta"
req = Net::HTTP::Put.new(path)
req.body_stream = File.open(file_name)
req['Transfer-Encoding'] = 'chunked'
req['Accept'] = 'application/json'
response = Net::HTTP.new(host, port).start { |http|
http.request(req)
}
我尝试添加req.delete('content-type')
并以各种方式设置initheaders = {}
,但默认content-type
会一直发送。
任何见解都会非常感激,因为我宁愿避免进行多次卷曲调用...有没有办法抑制发送默认标题?
答案 0 :(得分:1)
如果设置req['Content-Type'] = nil
,那么Net :: HTTP会将其设置为默认的' application / x-www-form-urlencoded',但是如果将其设置为空字符串Net :: HTTP不管它:
req['Content-Type'] = ''
Tika应该将其视为无效类型并启用探测器。
答案 1 :(得分:1)
如果Content-Type
为application/octet-stream
,Tika似乎会运行探测器。添加
req.content_type = "application/octet-stream"
现在允许我获得结果。