Mit Ruby, Ruby on Rails, um POST-JSON/XML-Daten mit einem web-service

Baute ich einen web service mit Spring-framework in Java und es laufen über ein tc-server auf localhost. Getestet habe ich die web-service mithilfe von curl und es funktioniert. In anderen Worten, diese curl-Befehl wird die post eine neue Transaktion auf den web-service.

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}'

Nun, ich Baue eine web-app mit RoR und würde gerne etwas ähnliches machen. Wie kann ich bauen? Im Grunde, die RoR web app-client sein soll, die Beiträge an den web-service.

Suche SO und im Internet fand ich einige hilfreiche links, aber ich kann es nicht funktionieren. Zum Beispiel, aus dieser post, die er/Sie verwendet die net/http.

Habe ich versucht aber es funktioniert nicht. In mein controller, ich habe

  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

Kehrt er zurück mit Fehler:

undefined local variable or method `url_path' for #<TransactionsController:0x0000010287ed28>

Den Beispiel-code, den ich verwende, ist von hier

Ich bin nicht mit net/http und ich kümmere mich nicht mit anderen tools, wie lange kann ich die gleiche Aufgabe leicht.

Vielen Dank!

InformationsquelleAutor okysabeni | 2011-09-07

Schreibe einen Kommentar