gpt4 book ai didi

android - 如何确定下载的 HTML 源代码来自特定网站?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:11:25 25 4
gpt4 key购买 nike

我有一项服务可以下载某个网站的 HTML 源代码,然后将其与之前从同一网站下载的源代码进行比较,看看是否发生了任何变化。

我昨天遇到的问题:我在公共(public)场合连接到 WiFi,我的服务开始下载代码,因为它没有显示没有连接。但是在使用公共(public) WiFi 时你首先必须登录,所以它被重定向到他们的登录页面,我的服务下载了登录页面的 HTML 代码。

我怎样才能确定地得到我想要的站点的源代码?

这是源代码(顺便说一下,我将源代码转换为 md5 以便于比较,但这并不重要):

public class DownloadHandler{

public String getMd5(String url){
HttpClient client = new DefaultHttpClient();

HttpGet request = new HttpGet(url);

HttpResponse response = null;

try {
response = client.execute(request);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

InputStream in = null;
try {
in = response.getEntity().getContent();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

BufferedReader reader = new BufferedReader(new InputStreamReader(in));

StringBuilder str = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
str.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}

String HTML = str.toString();

try {
String md5 = stringToMd5(html);
return md5;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}

}

public String stringToMd5(String s) throws NoSuchAlgorithmException {
MessageDigest md5 = MessageDigest.getInstance("MD5");stringa
md5.update(s.getBytes(), 0, s.length());
String md5String = new BigInteger(1, md5.digest()).toString(16);
return md5String;
}

以及检查连接的函数:

boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager
.getActiveNetworkInfo();
return activeNetworkInfo != null;
}

最佳答案

您可以使用

禁用重定向
HttpGet httpGet = new HttpGet("www.google.com");
HttpParams params = httpGet.getParams();
params.setParameter(ClientPNames.HANDLE_REDIRECTS, Boolean.FALSE);
httpGet.setParams(params);

但是你仍然应该检查应该是 200 的 http 状态码

HttpResponse httpResp = client.execute(response);
int code = httpResp.getStatusLine().getStatusCode();

关于android - 如何确定下载的 HTML 源代码来自特定网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12816108/

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