【问题标题】:Verify if a request is GET / POST验证请求是否为 GET / POST
【发布时间】:2014-07-10 16:23:31
【问题描述】:

我正在为 ruby​​ 使用 twitter gem,需要向用户/查找端点发送 POST 请求。 根据 gem 源代码文档(https://github.com/sferik/twitter/blob/4e8c6dce258073c4ba64f7abdcf604570043af71/lib/twitter/rest/users.rb),默认情况下请求应该是 POST,除非我通过 :get :

@option options [Symbol, String] :method 如果设置为 ':get',则通过 GET 请求而不是标准 POST 请求向用户请求。

def users(*args)
    arguments = Twitter::Arguments.new(args)
    request_method = arguments.options.delete(:method) || :post
    flat_pmap(arguments.each_slice(MAX_USERS_PER_REQUEST)) do |users|
      perform_with_objects(request_method, '/1.1/users/lookup.json', merge_users(arguments.options, users), Twitter::User)
    end
  end

我这样称呼它:

users = @client.users(twitter_screen_names_arr, [:method, :post])

但是,我不确定这是否真的会导致 POST 请求/GET 请求。 我如何确定这是否是 POST/GET?我想打印正在发出的请求,以了解实际发送的内容。

谢谢!

【问题讨论】:

  • request.post?request.get? 可用于测试 request 是 POST 还是 GET 请求。或者您可以使用request.method 来获取请求的类型。

标签: ruby-on-rails ruby twitter twitter-gem


【解决方案1】:

code 可以看出,它默认使用POST。这种行为也是 specified 与 RSpec。

你可以像这样调用 users 方法:

@client.users(twitter_screen_names_arr, :method => :post)

或者干脆

@client.users(twitter_screen_names_arr)

因为POST是默认的请求方法。

如果您不信任代码或规范,您可以通过代理运行请求以手动验证此行为。

【讨论】:

  • 感谢您的回复。我确实相信代码,但我不确定我是否正确调用它。此外,我更想知道请求是什么样的。
猜你喜欢
  • 2019-08-23
  • 1970-01-01
  • 2018-12-17
  • 2018-03-23
  • 1970-01-01
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多