我有HttpWebRequest
对网络服务器进行'POST'并获取HTML页面作为回应。
我被问到最好的做法是如何知道我得到的回应是否有所改变?
我无法在Web服务器标头上进行中继,它们不一定是。
这将以一种我不需要再次解析响应的方式来提高性能,并将在半秒左右的时间内转到下一个请求。
先谢谢你
答案 0 :(得分:0)
您可以告知您的网络服务器上次修改日期。见here。如果您不能依赖,那么无论如何您都必须解析您的回复。你可以使用md5快速完成。所以你“md5”你当前的反应并将它与之前的反应进行比较。
答案 1 :(得分:0)
您不应该尝试依赖POST
请求的标头,因为它不应该发出任何缓存标头。
您需要做的是执行哈希/校验和(对于绝对性能,这可以是CRC(32)
,对于返回的内容<,可以是“真实”哈希,例如md5
/ strong>(这意味着,标题中\r\n\r\n
下面的所有内容)并以这种方式进行比较。
存储最后一个请求的校验和/哈希并与之进行比较应该足够了。
例如(伪):
int lastChecksum = 0;
bool hasChanged() {
performWebRequest();
string content = stripHeaders();
int checksum = crc32string(content);
if(checksum != lastChecksum) {
lastChecksum = checksum;
return true;
}
return false;
}