ПОСТ в рельсах 3 - PullRequest
       292

ПОСТ в рельсах 3

0 голосов
/ 24 апреля 2011

Как я могу вызвать некоторые веб-сервисы в rails 3, используя параметры POST для внешнего URL? Я обычно использую что-то подобное для публикации из командной строки

curl -X POST -u "v10REVkw:XuCqIhyCw" \
-H "Content-Type: application/json" \
--data '{"apids": ["c80-d363237c-e513b"], "android": {"alert": "Android  Test!"}}' \
https://url/to/push

Ответы [ 4 ]

2 голосов
/ 24 апреля 2011

Я думаю, что я бы использовал Отдых клиента .Вот пример прямо из их документов:

RestClient.post "http://example.com/resource", { 'x' => 1 }.to_json, :content_type => :json, :accept => :json
0 голосов
/ 25 апреля 2011

Достаточно интересно, что до сих пор никто не предложил HTTParty, который, на мой взгляд, является одним из самых простых HTTP-библиотек:)

http://httparty.rubyforge.org/

0 голосов
/ 24 апреля 2011

Вы можете использовать ActiveResource , он является частью пакета Rails.

0 голосов
/ 24 апреля 2011

Вот детальный способ добиться того, что вы ожидаете получить от одного из моих драгоценных камней.

Просто адаптируйтесь и запускайте с помощью remote.

def remote
  begin
    Net::HTTP.get_response((uri)).body
  rescue 
    #what you want here
  end
end

def gateway
  'http://api.opencalais.com/enlighten/rest/'
end

def uri
  URI.parse(gateway + '?' + URI.escape(post_params.collect{ |k, v| "#{k}=#{v}" }.join('&')))
end

def post_params
  {
    'licenseID' => @api_key,
    'content'   => @context
  }
end

EDIT:

Убедитесь, что это включено:

require 'uri'
require 'net/http'
require 'open-uri'

EDIT2:

Если вы взаимодействуете с веб-сервисом RESTful, рассмотрите возможность использования ActiveResource

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...