在发出POST请求时收到错误的状态行:“HTTP / 1.1 1 CUSTOM”

时间:2017-09-25 21:51:14

标签: ruby http post request

我一直试图将这个问题弄清楚几天,而且我没有想法。我有以下代码向本地运行的应用程序的另一个实例发出POST请求。

HTTP请求由以下代码初始化:

http_client = Net::HTTP.new(0.0.0.0, 1344)
http_client.use_ssl = true
http_client.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new("/some-path/?#some=params", {'Content-Type' => 'application/json'})
request.set_form_data(options[:post_data]) if options[:post_data]
request.body = options[:request_body] if options[:request_body]

response = http_client.request(request)

当我运行上述操作时,出现以下错误:

#<Net::HTTPBadResponse: wrong status line: "HTTP/1.1 1 CUSTOM">

考虑到这一点,似乎问题源于http_client.request(request)的标题有一些问题。我尝试通过记录response.to_hash.inspect来调试它,但我无法,因为它在我执行上述检查之前抛出异常。

我做了一些Googling,它提到我应该use_ssl = true,我做了。仍然得到同样的错误。

url0.0.0.0因为我在本地运行,1344是端口。

1 个答案:

答案 0 :(得分:0)

您应该在使用https / ssl时使用编码。试试这个:

uri = URI.encode("/some-path/?#some=params")
request = Net::HTTP::Post.new(uri, {'Content-Type' => 'application/json'})