簡體   English   中英

將JSON數據作為發布方法從Rails控制器發送到Web服務

[英]Send JSON data as post method from rails controller to a web service

我正在嘗試將我的控制器中用Rails編寫的一些json數據發送到Java Web服務。

在表單提交時,我將所有輸入字段數據都進行一些處理,然后使用to_json將其轉換為json對象。

但是如何將其發送到Java WebService

http://localhost:8080/exim/jsonToMapService?jsonData={"key":"value"}

您可以使用net/http (如@Pierre所寫,您應該在lib文件夾中創建一個類,並在其中放置您的函數)

url = URI.parse(service_url)
headers = {"host" => URL }
req = Net::HTTP::Post.new(url.path)
req["Content-Type"] = "application/json"
req["Accept"] = "application/json"

req.body = JSON.generate(some_data)

con = Net::HTTP.new(url.host, url.port)

# ssl for https
if full_url.include?("https")
  con.use_ssl = true
  con.verify_mode = OpenSSL::SSL::VERIFY_NONE
end

res = con.start {|http| http.request(req) }

為此,我建議使用RestClientFaraday 但是,我強烈建議不要在控制器中進行HTTP調用。

使用RestClient,它看起來像這樣:

RestClient.get('http://localhost:8080/exim/jsonToMapService', { key: :value })

例如,您應該創建一個類來提取此邏輯在lib文件夾中。

就像@eightbitraptor提到的那樣,在執行上述HTTP請求時,應避免在諸如Delayed JobResqueSideqik的后台進程中執行它們來避免阻塞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM