我有一个.Net XML网络服务,我需要一个简单的Sinatra应用程序来调用。真的只是转发它。假设我有我的sinatra.myapp.com/mywebservice.asmx捕获请求,然后将其与所有传入参数一起扔到www.myoldapp.com/mywebservice.asmx,获取响应然后让sinatra.myapp.com返回结果给客户。
在这种情况下,我们无法使用域别名,因为它相信sinatra.myapp.com端点的使用者能够跟踪重定向。
答案 0 :(得分: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对象执行任何操作 我不能告诉你如何使用它,因为我自己并没有掌握它,但你可以在互联网上找到许多谈论它的资源。