16

发布帖子后,如何在单独的脚本中使用 httparty 从 rails 项目获取响应 url 或 id?

红宝石脚本:

  HTTParty.post('http://localhost:3000/change_logs', parameters)

response.body 和所有其他的不显示 url 和响应 id

4

3 回答 3

32

两年后,我找到了一种从 上的request属性访问最后一个 URI 的方法response

url      = "http://example.com/redirects/to/www"
response = HTTParty.get(url)
response.request.last_uri.to_s
# => "http://www.example.com"
于 2012-04-12T07:35:25.217 回答
3

不幸的是,HTTParty 不保存该信息。当它遇到重定向时,它将跟随重定向并返回该请求的结果。它不会保存原始请求中的任何信息。

好消息是,这样的行为(通常)是可以预测的。Web 应用程序通常会在对 URL 的发布请求后重定向到相同的内容。

但如果你真的想这样做,你将不得不使用 Ruby 附带的 net/http 库。不过,它并不比 HTTParty 难多少,所以工作量也不大。

于 2010-08-23T07:48:22.007 回答
-1

这对我有用,但可能有更好的方法来做到这一点..

get_change_log_id = HTTParty.post('http://localhost:3000/change_logs.xml', parameters).to_a

get_change_log_id.each do |r|
  r.each do |sub|
    sub2 = sub.to_a
      sub2.each do |s|
        if s.index "id"
          @change_log_id = s.to_s.sub(/[i]/, '').sub(/[d]/, '')
        end
      end
  end
end
于 2010-08-23T15:26:13.697 回答