我能够使用HTTPClient获得android中网页的源代码,但是与计算机相比,android的网页源代码有所不同。该如何解决?
答案 0 :(得分:0)
,但是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 httpClient = HttpClientBuilder.create()。build();
然后在setHeader(HttpHeaders.USER_AGENT, ua)
之前将build()
添加到您的链中:
HttpClientBuilder.create()
.setHeader(HttpHeaders.USER_AGENT, ua)
.build();