0

sendgrid から提供された json URL があります。触れるだけで十分です。どうすればいいですか?

def suspend
  @user = User.find(params[:id])
  @user.update_attribute("suspended", true)

  # the url I need to touch => https://sendgrid.com/api/unsubscribes.add.xml?api_user=username%40website.com&api_key=secret_password&email=#{@user.email}

end
4

4 に答える 4

3

Net::HTTP.get標準ライブラリから使用できます(ドキュメントを参照)。

require 'net/http'
Net::HTTP.get URI("https://sendgrid.com/api/unsubscribes.add.xml?api_user=username%40website.com&api_key=secret_password&email=#{@user.email}")

更新しました:

HTTPSの場合、次のようにsmthを実行できます。

require "net/https"

uri = URI.parse("https://www.google.com")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(uri.request_uri) 
# request = Net::HTTP::Head.new(uri.request_uri) - get response without body

response = http.request(request)

このテーマに関する素晴らしい記事-RubyNet::HTTPチートシート

于 2011-12-05T15:32:58.983 に答える
2

httpclient gem をインストールする

HTTPClient.get("https://sendgrid.com/api/unsubscribes.add.xml?api_user=username%40website.com&api_key=secret_password&email=#{@user.email}")
于 2011-12-05T15:28:30.470 に答える
1

ActionDispatchGET http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-GETを試してみてください

于 2011-12-05T15:28:27.103 に答える
1
require 'open-uri'
open("http://pragprog.com/") { |f| f.gets  }

結果?ページ全体ではなく、1 行のみ:

"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n"
于 2011-12-05T15:48:22.340 に答える