如何从Sinatra调用.NET xml Web服务?

时间:2012-06-15 15:01:54

标签: sinatra

我有一个.Net XML网络服务,我需要一个简单的Sinatra应用程序来调用。真的只是转发它。假设我有我的sinatra.myapp.com/mywebservice.asmx捕获请求,然后将其与所有传入参数一起扔到www.myoldapp.com/mywebservice.asmx,获取响应然后让sinatra.myapp.com返回结果给客户。

在这种情况下,我们无法使用域别名,因为它相信sinatra.myapp.com端点的使用者能够跟踪重定向。

1 个答案:

答案 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对象执行任何操作 我不能告诉你如何使用它,因为我自己并没有掌握它,但你可以在互联网上找到许多谈论它的资源。