是否可以在.net应用程序中读取.jsp页面

时间:2013-11-07 11:52:35

标签: jsp asp.net-mvc-4 webrequest

我有来自第三方的.jsp页面我需要从中获取信息。我的应用程序正在MVC4中开发。我将如何从我的应用程序中的.jsp文件中获取信息。

我尝试使用webrequest,但内容不存在。

关注Fatema

2 个答案:

答案 0 :(得分:1)

JSP-page必须由像tomcat这样的Servlet-Container实际呈现,因为包含的数据是动态的。完成后,您可以使用.net-application解析HTML输出。

这可能是唯一的方法。直接从jsp中读取数据。

无论如何,我建议您找到另一种方法来检索数据,例如向您添加jsp所属的Java EE应用程序的API。或访问现有的。

答案 1 :(得分:0)

我认为你有两个选择:

第一个选项是使用Ajax在客户端执行此操作:(http://api.jquery.com/jQuery.ajax/

代码看起来像:

function CallOtherSite(otherSiteUrl) {  
$.ajax({
    url: otherSiteUrl,
    cache: false,
    success: function (html) {
     //This will be the html from the other site
    //parse the html/xml and do what you need with it.
    }
});

因为这是在客户端使用JavaScript完成的,所以很可能会遇到CORS问题。 (http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/20/implementing-cors-support-in-asp-net-web-apis.aspx

我认为另一种选择和更好的选择是在服务器端执行此操作。 (使用Razor在控制器或视图中)(在控制器中会更容易......)

try
{
    var request = (HttpWebRequest)WebRequest.Create(urlToOtherSite);
    request.Accept = "application/xml";
    request.Method = "GET";
    webResponse = (HttpWebResponse)request.GetResponse();
    sr = new StreamReader(webResponse.GetResponseStream());
    string responseText = sr.ReadToEnd();
}
catch(Exception ex)
{
}
finally
{
    if (sr != null) { sr.Close(); }
    if (webResponse != null) { webResponse.Close(); }
}

然后你可以使用StreamReader获取html / xml并用它做你想做的事。

希望这会有所帮助......