Я создал веб-сервис на основе Spring Framework на Java и запустил его на tc-сервере на localhost.Я протестировал веб-сервис с помощью curl, и он работает.Другими словами, эта команда curl опубликует новую транзакцию в веб-сервисе.
curl -X POST -H 'Accept:application/json' -H 'Content-Type: application/json' http://localhost:8080/BarcodePayment/transactions/ --data '{"id":5,"amount":5.0,"paid":true}'
Теперь я создаю веб-приложение с использованием RoR и хотел бы сделать что-то подобное.Как я могу построить это?По сути, веб-приложение RoR будет клиентом, который отправляет сообщения в веб-службу.
При поиске в SO и в Интернете я нашел несколько полезных ссылок, но не могу заставить его работать.Например, из этой записи он / она использует net / http.
Я пытался, но это не работает.В моем контроллере у меня есть
require 'net/http'
require "uri"
def post_webservice
@transaction = Transaction.find(params[:id])
@transaction.update_attribute(:checkout_started, true);
# do a post service to localhost:8080/BarcodePayment/transactions
# use net/http
url = URI.parse('http://localhost:8080/BarcodePayment/transactions/')
response = Net::HTTP::Post.new(url_path)
request.content_type = 'application/json'
request.body = '{"id":5,"amount":5.0,"paid":true}'
response = Net::HTTP.start(url.host, url.port) {|http| http.request(request) }
assert_equal '201 Created', response.get_fields('Status')[0]
end
Возвращается с ошибкой:
undefined local variable or method `url_path' for #<TransactionsController:0x0000010287ed28>
Пример используемого кода: здесь
Я не привязан к net / http и не возражаю против использования других инструментов, если я могу легко выполнить ту же задачу.
Большое спасибо!