質問

投稿を行った後、別のスクリプトでHTTPartyを使用したRailsプロジェクトから応答URLまたはIDを取得するにはどうすればよいですか?

Rubyスクリプト:

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

Response.bodyと他のすべてのものは、URLと応答IDを表示しません

役に立ちましたか?

解決 3

これは私にとってうまくいきます、おそらくこれを行うより良い方法があります。

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

他のヒント

2年後、私はから最後のURIにアクセスする方法を見つけました request の属性 response:

url      = "http://example.com/redirects/to/www"
response = HTTParty.get(url)
response.request.last_uri.to_s
# => "http://www.example.com"

残念ながら、その情報はhttpartyによって保持されていません。リダイレクトに遭遇すると、リダイレクトに従い、そのリクエストの結果を返します。元のリクエストから情報を保存しません。

良いニュースは、このような動作は(通常)予測可能であることです。通常、Webアプリは、URLへの投稿要求の後、同じものにリダイレクトされます。

しかし、本当にこれをやりたい場合は、Rubyに付属のNet/HTTPライブラリを使用する必要があります。しかし、それはhttpartyほど難しくないので、それ以上の仕事ではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top