Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从ASP.NET核心web应用程序中使用HttpClient以编程方式从Angular2页面获取HTML内容_C#_Html_Angular_Asp.net Core_Httpclient - Fatal编程技术网

C# 从ASP.NET核心web应用程序中使用HttpClient以编程方式从Angular2页面获取HTML内容

C# 从ASP.NET核心web应用程序中使用HttpClient以编程方式从Angular2页面获取HTML内容,c#,html,angular,asp.net-core,httpclient,C#,Html,Angular,Asp.net Core,Httpclient,我正在尝试从ASP.NET核心web应用程序中的一个角度为2的页面以编程方式获取HTML内容。我想做的是从一些外部Url解析和研究HTML源代码。我正在尝试使用HttpClinet进行此操作,示例一: var httpClient = new HttpClient(); var response = await httpClient.PostAsync("http://localhost:22222/vstsintegration/deletewi", null); var contents =

我正在尝试从ASP.NET核心web应用程序中的一个角度为2的页面以编程方式获取HTML内容。我想做的是从一些外部Url解析和研究HTML源代码。我正在尝试使用HttpClinet进行此操作,示例一:

var httpClient = new HttpClient();
var response = await httpClient.PostAsync("http://localhost:22222/vstsintegration/deletewi", null);
var contents = await response.Content.ReadAsStringAsync();
或示例二:

var httpClient = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage();
request.Method = new HttpMethod("GET");
request.RequestUri = new Uri("http://localhost:22222/vstsintegration/deletewi");
var response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseContentRead);
var contents = await response.Content.ReadAsStringAsync();
或者使用WebRequest和WebResponse,示例三:

WebRequest request = WebRequest.Create(value.urls[0]);
request.ContentType = "GET";
WebResponse response = request.GetResponseAsync().Result;
Stream dom = response.GetResponseStream();
StreamReader sr = new StreamReader(dom, System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
在任何情况下,我只得到这个页面的基本HTML。响应中没有来自角度组件的HTML。可能在请求期间还没有加载组件,并且请求是异步的,所以响应被截断

请,任何人都有一些建议,如何完全加载HTML,如何强制请求等待整个页面和所有组件加载。此外,任何其他关于如何以其他方式解决此问题的意见都是受欢迎的

非常感谢,
Vedran

我认为您不可能用httpclient完成这项任务。如果这样做,您将只看到index.html页面的源代码。当您查看angular应用程序时,浏览器会在后台运行javascript来生成html,而httpclient不会这样做。这将是一个需要解决的棘手问题。如果您可以访问web服务器,您可以使用nodejs在服务器上生成页面,那么您的方法可能是可行的。我有权访问服务器。使用NodeJS的解决方案看起来怎么样?另外,使用Http.get from@angular/Http模块是否有任何解决方法?我的意思是,我也尝试过这种方法,但它不起作用,但也许我做错了什么。这是一种工作,有多种方法。这是一个可能对你有用的教程。祝你好运。我明白了,你建议我重新设计要从中获取HTML的应用程序,以便它支持服务器渲染。。。我希望这样做不会干扰外部web应用程序的开发。我现在对外部应用程序还有一个要求,这是不好的。