2011-11-01 74 views
2

我有一個應用程序連接到一個IP攝像頭,並執行HTTP請求獲取圖像和M-JPEG。現在沒關係,因爲我在開發室裏有相機。但在幾周內,攝像頭將停產(它們非常昂貴),所以我不會讓它們用於測試和調試我的應用程序。用於測試目的的假http服務器

我想知道的是什麼是「模擬」這些凸輪的最佳方式?目前,我的應用程序使用2個攝像頭,假設它們位於http://192.168.88.1http://192.168.88.2之間。我已經想到這一點:

  1. 在我的應用程序,我可以封裝了做 HTTP調用的類 釋放和假在調試時,當能做到真正的HTTP請求的功能。這不利的一面是,它會 不像偶爾超時和網絡 流量再現真實的東西。
  2. 也許有一個網絡攝像頭模擬器的某個地方,我可以把我的 網絡和使用?
  3. 也許創建真正的http請求到一個真正的服務器,我將 編程爲返回假圖片?如果是這樣,如何繼續?

就像你看到的,我有想法,但我不確定什麼是最好的,什麼人在那裏做。考慮到你的答案,考慮到我可能會在相機不在時使用它進行單元測試以及正常調試。

謝謝!

+0

由用戶使用的建議,我終於在我和HTTP處理程序(ashx的).NET解決方案創建了一個網站。它工作得很好! –

回答

2

廣告。 1:在單元測試時這是一個很好的方法 - 你的代碼不應該依賴於外部服務器/設備/文件系統。但是你已經看到這個環境可能太理想化了。不過,我的目標是將HTTP基礎架構代碼進行外部化 - 這將改善您的測試功能和整體架構。

Ad。 2:從來沒有聽說過,對不起。

Ad。 3:我認爲這是最可行的解決方案。如果你曾經使用過servlet,那麼只需抓住Tomcat或Jetty編寫一個。然後根據localhost:8080/war_name/servlet_name連接到您的servlet並從它返回任何你想要的。 Here是一個簡單的例子。

如果您從未聽說過有關Java servlet和servlet容器的信息,那麼瞭解它們仍值得一試。但啓動內置於Sun JDK的HTTP服務器可能會更快,請參閱HttpServer API和example

+0

感謝您的好帖子。 –

1

如果您想要真實圖像並訪問網絡攝像頭,您可以在您的解決方案中創建一個ASP.Net網絡服務,根據請求從網絡攝像頭拍攝照片。 當您處於調試模式時,配置您的解決方案以啓動asp.net developpement服務器上的webservice,因此您不必配置「真實」web服務器

以下是代碼的鏈接快照從C# 這是對的WinForms,但它應該是適應於Web服務 http://sites.google.com/site/webcamlibrarydotnet/winfrom-and-csharp-sample-code-and-download

+0

非常好的主意。我想我會將這個想法與Tomasz給出的一般性解釋混合在一起來創建我的解決方案。謝謝 –

1

我建議創建一個使用Sinatra一個簡單的測試工具。 Sinatra使用非常簡單,可以將這種基本的網絡應用程序剔除出去。

例如,下面是一個使用末日編寫一個真正的程序:

require 'sinatra' 

get '/hi' do 
    "Hello World!" 
end 

這將運行一個簡單的Web偵聽器,如果你打的URI /hi將響應Hello World!

Sinatra是一款基於Ruby的應用程序,如果您瞭解Ruby,最好。如果您沒有或者對另一種語言有強烈的偏好,Sinatra's Wikipedia page列出了25種以類似其他語言編寫的類似應用程序,因此可能會有一個選項可供您使用。

0

使用Python構建的HTTP服務器

# sudo python -m http.server 80 
Serving HTTP on 0.0.0.0 port 80 ... 
123.123.12.1 - - [12/Feb/2018 11:34:02] "GET/HTTP/1.1" 200 -