[英]Ruby Net::HTTP::Post overrides custom Content-Type header
[英]ruby and net/http request without content-type
我正在嘗試使用Net :: HTTP :: Put調用Tika服務器 。 問題是該調用總是通過Content-Type
,這使得Tika不能運行檢測器(我想要的),然后由於默認的Content-Type
of application/x-www-form-urlencoded
。 Tika博士建議不要使用它。
所以,我有以下內容:
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
不斷發送。
任何見解都將非常感激,因為我寧願避免不得不進行多次卷曲調用...有沒有辦法抑制發送默認標頭?
如果你設置req['Content-Type'] = nil
那么Net :: HTTP會將它設置為默認的'application / x-www-form-urlencoded',但如果你將它設置為空字符串Net :: HTTP不要管它:
req['Content-Type'] = ''
Tika應該將其視為無效類型並啟用探測器。
如果Content-Type
是application/octet-stream
,Tika似乎會運行探測器。 添加
req.content_type = "application/octet-stream"
現在允許我得到結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.