2012-06-15 74 views
1

我有一個.Net XML webservice,我需要一個簡單的Sinatra應用程序來調用。真的只是轉發它。假設我有我的sinatra.myapp.com/mywebservice.asmx接收請求,然後將其與所有傳入參數一起發送到www.myoldapp.com/mywebservice.asmx,獲取響應,然後將sinatra.myapp.com返回結果給客戶。如何從Sinatra調用.NET xml webservice?

在這種情況下,我們無法使用域別名,因爲相信sinatra.myapp.com端點的使用者能夠跟蹤重定向。

回答

0

這就是我會做:

require 'sinatra' 
require 'net/http' 
require 'rexml/document' 

get '/mywebservice.asmx' do 
    query_string = '' 
    params.each { |k, v| query_string += k + '=' + v + '&' } 

    http  = Net::HTTP.new('www.myoldapp.com', 80) 
    response = http.get('mywebservice.asmx?' + query_string) 

    xml  = REXML::Document.new(response.body) 
end 

現在你可以做任何你想用REXML對象。
我不能告訴你如何使用它,因爲我自己並沒有掌握它,但你可以在互聯網上找到許多關於它的資源。

+0

我結束了切換到Rails,因爲我不能在我的生活中訪問params(是{})在這個post版本 – Webjedi