gpt4 book ai didi

Android 4.0保存asp页面内容供离线查看

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:41 25 4
gpt4 key购买 nike

我是一名初级开发人员,一直致力于 RSS 阅读器。

我正在尝试从我的应用程序下载网页以供离线查看,但我遇到了一些问题。当我尝试下载一个 asp 页面时,我似乎没有获得正确的内容,而是一个带有 asp 表单小部件的 html 页面。

任何人都可以帮助我了解正在发生的事情以及我如何才能下载该页面的内容吗?

我还应该提到该网页是一个使用 https ssl 身份验证的共享点网页,使用 httpclient 作为我连接和下载网页的方式。

最佳答案

要与 ASP 通信,您通常需要在 HttpPost 和其他请求中发送 __VIEWSTATE 和 _EVENTVALIDATION token 。您可以通过在基本页面上调用 HttpGet 并将 Patten 与正则表达式或简单的 str.contains("_VIEWSTATE") 结合使用并将其从 HTML 中剥离并随每个请求一起发送来获取一次。

如果您没有执行任何 POST,只是基本的 GET,那么请确保正确设置 header ,如下所示:

HttpGet req = new HttpGet("YOUR SITE'S URL");         
req.setHeader("Content-Type", "application/x-www-form-urlencoded");
req.setHeader("Host", "YOUR SITE'S ROOT PAGE");
req.setHeader("User-Agent", "Mozilla/5.0 ...");
req.setHeader("Accept-Encoding", "gzip,deflate,sdch");
req.setHeader("Accept", "text/html,application/xhtml+xml,application/xml");
req.setHeader("Accept-Language", "en-us,en");
req.setHeader("Accept-Charset", "ISO-8859-1,utf-8");
HttpResponse resp = client.execute(req, localContext);

不要忘记您可以存储在 httpcontext 中并在每次执行时传递的可能 session cookie,如上所示:

CookieStore cookieStore = new BasicCookieStore();
HttpContext localContext = new BasicHttpContext();
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);

从理论上讲,最好的解决方法是下载 Fiddler,在 Chrome 中运行网站,查看发生了什么,并在您的应用中模拟实际的浏览器请求:http://www.fiddler2.com/fiddler2/

关于Android 4.0保存asp页面内容供离线查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12319583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com