我能够使用HTTPClient获取Android网页的源代码,但是Android的网页源代码与计算机的网页源代码不同。如何解决这个问题?
但是与计算机的网页源代码相比,Android的网页源代码是不同的。如何解决这个问题?
设置桌面浏览器发送User-Agent
标题的内容,这应该欺骗服务器相信请求来自桌面,如果站点有不同的版本,则应提供桌面版本:
var ua = "Mozilla/5.0 (Windows Horst NT 6.1; WOW64; rv:60.0) Gecko/20100101 Firefox/60.0"
var client = new HttpClient()
client.DefaultRequestHeaders
.Add("User-Agent", ua)
另请参阅此文档:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
这不是 100% 防弹的,因为如果服务器使用其他方法来猜测谁在请求,它可能会失败,但它是最简单的,在大多数情况下就足够了。
编辑
我使用了像 HttpClient httpClient = HttpClientBuilder.create((.build((;
然后在build()
之前将setHeader(HttpHeaders.USER_AGENT, ua)
添加到您的链中:
HttpClientBuilder.create()
.setHeader(HttpHeaders.USER_AGENT, ua)
.build();