我有来自第三方的.jsp页面我需要从中获取信息。我的应用程序正在MVC4中开发。我将如何从我的应用程序中的.jsp文件中获取信息。
我尝试使用webrequest,但内容不存在。
关注Fatema
答案 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并用它做你想做的事。
希望这会有所帮助......