可以在.net应用程序中读取.jsp页面吗
我有一个来自第三方的.jsp页面,我需要从中获取信息。我的应用程序正在MVC4中开发。我将如何从应用程序中的这个.jsp文件中获取信息 我尝试使用webrequest,但内容不存在可以在.net应用程序中读取.jsp页面吗,jsp,asp.net-mvc-4,webrequest,Jsp,Asp.net Mvc 4,Webrequest,我有一个来自第三方的.jsp页面,我需要从中获取信息。我的应用程序正在MVC4中开发。我将如何从应用程序中的这个.jsp文件中获取信息 我尝试使用webrequest,但内容不存在 关于FatemaJSP页面实际上必须由类似tomcat的Servlet容器呈现,因为包含的数据是动态的。这样您就可以用.net应用程序解析HTML输出了 这可能是唯一的办法。直接从jsp读取数据 无论如何,我建议您找到另一种方法来检索数据,比如向jsp所属的JavaEE应用程序添加API。或者访问现有的。我认为您有两
关于FatemaJSP页面实际上必须由类似tomcat的Servlet容器呈现,因为包含的数据是动态的。这样您就可以用.net应用程序解析HTML输出了 这可能是唯一的办法。直接从jsp读取数据
无论如何,我建议您找到另一种方法来检索数据,比如向jsp所属的JavaEE应用程序添加API。或者访问现有的。我认为您有两种选择: 第一个选项是使用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的问题。()
在我看来,另一个选择也是更好的选择是在服务器端执行此操作。(在控制器中或使用Razor的视图中)(在控制器中会容易得多…)
然后,您可以使用StreamReader来获取html/xml,并使用它做您想做的事情
希望这有帮助…不可能。必须先编译JSP。编译后,您可以尝试请求它,然后从中删除数据。看起来您已经有了正确的答案,但“从中获取信息”是什么意思?你的意思是从服务器调用jsp并解析响应吗?可能是一个示例,说明你想要什么信息以及它当前是如何呈现给你的…@Jeff是的,我想解析响应此jsp页面是第三方提供给我的链接。但不幸的是,我找不到在.net中执行此操作的方法。我也尝试了javascript,但它似乎很有用有一些“同源策略”问题。与如何从应用程序解析jsp页面混淆。1-您对jsp有什么期望?(Hmlt,xml,json?)2-您是通过JS在客户端还是在控制器的服务器上尝试此操作?@Jeff json或xml都可以。我在客户端尝试此操作。当另一个方法没有时,此操作有效!+1!
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(); }
}