2017-05-27 69 views
0

我正在开发一个使用webview显示网页的uwp项目。我想从网址本地保存网页。我试过很少这些how to save the webpage using c#?如何使用C#在UWP中将网页保存为html文件?

但它似乎并没有工作,因为解决方案是基本的Windows窗体应用程序。

请原谅,如果我提出的任何错误提问,因为我是全新的stackoverflow。

+0

*“它似乎没有工作”*不是问题陈述。 – IInspectable

+0

其错字,对不起。我试过这些例子,但他们没有工作。任何帮助? –

+0

*“他们不工作”*也不是问题陈述。开发人员知道问题陈述是什么。 – IInspectable

回答

0

我想从一个url本地保存一个网页。

它与Windows窗体类似。尝试向URL发送获取请求,并获取缓冲区或HTML内容。要发送获取请求,您可以使用HttpClient。然后将html缓冲区保存为一个格式为.html的本地文件。例如:

HttpClient httpclient = new HttpClient(); 
var result = await httpclient.GetBufferAsync(new Uri("https://www.microsoft.com/en-sg/")); 
StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("test2.html", CreationCollisionOption.ReplaceExisting); 
await FileIO.WriteBufferAsync(file, result); 

下载后,您可能会在C:\Users\{username}\AppData\Local\Packages\{PackageId}\LocalState找到下载的文件。请参考Files, folders, and libraries

+0

感谢您的一个很好的解释,但我怎么想得到我正在下载的文件的原始文件名? –

+0

@VivekVaishya,你没有下载一个网页?网页的名称是什么?如果我误解了你,请详细说明。 –

+0

是的,你的方法适用于下载网页。现在我试图下载像图片这样的小文件,但我需要有图片的原始名称。我通过msdn尝试了这种方法 - https://docs.microsoft.com/en-us/uwp/api/windows.networking.backgroundtransfer.backgrounddownloader。但HandleDownloadAsync(下载,true)显示异常;行 –