Post HTTP响应已更改?
我有一个Post HTTP响应已更改?,post,httpwebrequest,http-post,httpwebresponse,Post,Httpwebrequest,Http Post,Httpwebresponse,我有一个HttpWebRequest,它可以“发布”到web服务器并得到一个HTML页面作为响应 有人问我,最好的做法是如何知道我得到的答复是否已经改变 我不能转发web服务器头,它们不一定是 这将以一种不需要再次解析响应的方式提高性能,并在大约半秒后转到下一个请求 在advanced中感谢您您可以告诉您的Web服务器上次修改日期。看见如果您不能依赖于此,那么您必须解析您的响应。使用md5可以很快做到这一点。因此,您可以“md5”当前响应,并将其与之前的响应进行比较。您不应该试图依赖POST请求
HttpWebRequest
,它可以“发布”到web服务器并得到一个HTML页面作为响应
有人问我,最好的做法是如何知道我得到的答复是否已经改变
我不能转发web服务器头,它们不一定是
这将以一种不需要再次解析响应的方式提高性能,并在大约半秒后转到下一个请求
在advanced中感谢您您可以告诉您的Web服务器上次修改日期。看见如果您不能依赖于此,那么您必须解析您的响应。使用md5可以很快做到这一点。因此,您可以“md5”当前响应,并将其与之前的响应进行比较。您不应该试图依赖
POST
请求的头,因为它无论如何都不应该发出任何缓存头
您需要做的是对返回的内容执行哈希/校验和(这意味着头中\r\n\r\n
下面的所有内容),并以这种方式进行比较
它应该足以存储最后一个请求的校验和/哈希,并与之进行比较
例如(psuedo):
这不会(或至少不应该)。。处理一个
POST
请求。是的,你是对的。因此,您要么将其更改为GET,要么使用md5对其进行比较。
int lastChecksum = 0;
bool hasChanged() {
performWebRequest();
string content = stripHeaders();
int checksum = crc32string(content);
if(checksum != lastChecksum) {
lastChecksum = checksum;
return true;
}
return false;
}