0
別のWebサイトからhtml応答を取得してアプリケーションに読み込む必要があります。私はコードの下に書かれ、ASP.net MVCで動的URLリダイレクトを行うには?
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
namespace MVC_TEST.Controllers
{
public class DocumentCloudController : Controller
{
public string Index()
{
var result = GetResponse();
return result;
}
private static string GetResponse()
{
var html = string.Empty;
const string url = @"http://localhost/xxxxx/yyyyy/logon.aspx";
var request = (HttpWebRequest)WebRequest.Create(url);
request.AutomaticDecompression = DecompressionMethods.GZip;
using (var response = (HttpWebResponse)request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
if (stream != null)
{
using (var reader = new StreamReader(stream))
{
html = reader.ReadToEnd();
}
}
}
}
return html;
}}
}
}
コントロールが正しくロードされている、しかし、画像、CSSやJSパスがHTMLで
/xxxx/yyyy/dojo.js ,
/xxxx/style/logon.css,
/xxxx/images/logon.png
相対パスにマッピングされ、ここで私は以下のように実際のURLにそれを変更する必要があります
1つのオプションは、これらの内容をhtmlで置き換えることです。
URLを動的に変更するオプションはありますか? IIS URL書き換えモジュールは私の要件に適していますか?
仕事ができるIIS URL書き換えモジュールを使用して、あなたの考え
おかげ@JesseJhonson:
次の例では、リバースプロキシを作成するときに私のために働いたスニペットです。しかし、私はjsファイルでいくつかのajax Webサービス呼び出しを持って、私もそれを置き換える必要があります。私は将来どのくらいのサービスコールが来るのか知りませんか?他の解決策はありますか? –
リンクされたCSSファイルとJSスクリプトの絶対URLを置き換えるために、上記の同じ方法を使用しました。リバースプロキシを使用してみましたか? [Titanium-Web-Proxy](https://github.com/justcoding121/Titanium-Web-Proxy)のようなものはプロセスを単純化するかもしれません。基本的にHTMLを解析して、すべてのURLを置き換えて、リバースプロキシを指すようにします(mydomain.com/proxy.ashx?uri={original urlなど)。このようにして、すべての外部ファイル(js、cssなど)がプロキシ経由で読み込まれ、コンテンツの取得、解析、変更、およびHTMLと同じ方法での配信が可能です。 –