1

シンプルな Sinatra アプリを呼び出す必要がある .Net XML Web サービスがあります。本当に転送するだけです。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 に答える