簡體   English   中英

沒有content-type的ruby和net / http請求

[英]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-Typeapplication/octet-stream ,Tika似乎會運行探測器。 添加

req.content_type = "application/octet-stream"

現在允許我得到結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM