1

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

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

4

1 回答 1

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 对象做任何您想做的事情。
我不能告诉你如何使用它,因为我自己并不掌握它,但你可以在互联网上找到很多谈论它的资源。

于 2012-06-20T22:32:02.417 回答