如何在OpenURI(Ruby)中发送自定义标头并检查它们

时间:2016-11-16 15:50:47

标签: ruby-on-rails ruby ruby-on-rails-3 open-uri

在以下文档中找到了这个:https://ruby-doc.org/stdlib-2.1.0/libdoc/open-uri/rdoc/OpenURI.html

  

可以通过可选的哈希参数指定其他头字段。

import json
import requests

 pdf= open('test.pdf','rb')
 url = "http://xxapi.xxapi.org/xxx.util.json"

 payload = {
   'file' :pdf

   }

 response = requests.post(url, files=payload)

 print response.json()

有人可以告诉我如何检查这是否正常工作?

1 个答案:

答案 0 :(得分:4)

  

有人可以告诉他们如何检查[附加标题字段]是否正常工作。

您可以使用netcat收听特定端口,例如2000:

$ nc -l 2000

并相应地将主机更改为localhost:2000

# open.rb
require 'open-uri'

open("http://localhost:2000/",
  "User-Agent" => "Ruby/#{RUBY_VERSION}",
  "From" => "foo@bar.invalid",
  "Referer" => "http://www.ruby-lang.org/") {|f|
   # ...
}

通过

运行程序
$ ruby open.rb

将使netcat显示:

$ nc -l 2000
GET / HTTP/1.1
User-Agent: Ruby/2.3.1
From: foo@bar.invalid
Referer: http://www.ruby-lang.org/
Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
Accept: */*
Host: localhost:2000

显然,标题工作正常。 (当然他们这样做)