簡體   English   中英

來自Rails控制器內部的HTTP請求

[英]http request from inside rails controller

我想讓我的一個控制器從我的控制器內發出一個http請求,以“獲取”並解析一個xml,然后可以在我的視圖中顯示它。 聽起來很容易。

require 'net/http'

class Profile::EventTypesController < ProfileController

  def index
    url =  URI.parse('instagram.com')
    req = Net::HTTP.new(url, 80)
    res = req.get('/my_account')

    xml = res.body
    @feed = Feedjira::Feed.parse xml
    ...

    ...
  end
end

一旦嘗試,它將無法正常工作,並顯示以下異常:

WebMock::NetConnectNotAllowedError at /de
Real HTTP connections are disabled. Unregistered request: GET http://instagram.com/my_account with headers {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Ruby'}

stub_request(:get, "http://instagram.com/partyguerilla").
with(headers: {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'User-Agent'=>'Ruby'}).
to_return(status: 200, body: "", headers: {})

有什么方法可以從控制器內部啟用“ REAL HTTP連接”嗎? 當我使用google時,所有內容都是關於模擬存根並從測試中進行的。.有人以前經歷過嗎?

謝謝

檢查您的Gemfile中是否有gem webmock 它應僅包括在測試組中,而不包括在開發中。

group :test do
  gem 'webmock'
end

這同樣適用於rspec-rails gem。 看到這個問題

暫無
暫無

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

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