我有一个HttpWebRequest
做“POST”到Web服务器并获得一个HTML页面作为回应。HTTP响应已更改?
我被问过最佳做法如何知道我得到的回应已被更改或没有?
我无法在Web服务器标题上进行中继,它们不一定是。
这样可以提高性能,我不需要再次解析响应,并且会在半秒内转到下一个请求。
先进的感谢您
我有一个HttpWebRequest
做“POST”到Web服务器并获得一个HTML页面作为回应。HTTP响应已更改?
我被问过最佳做法如何知道我得到的回应已被更改或没有?
我无法在Web服务器标题上进行中继,它们不一定是。
这样可以提高性能,我不需要再次解析响应,并且会在半秒内转到下一个请求。
先进的感谢您
您可以告诉您的网络服务器最后修改日期。见here。如果你不能依靠,你必须解析你的反应。你可以使用md5快速完成。所以你“md5”你当前的回应,并与之前的比较。
您不应该试图依赖POST
请求的标头,因为它不应该发出任何缓存标头。
你需要做的,而不是什么是执行散列/校验和(这可以是CRC(32)
绝对表现或“真正的”散列如md5
)对返回内容(这意味着,一切\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;
}
这不会(或者至少不应该)..上的'POST'请求工作。 –
是的,你是对的。所以你必须改变它到一个GET或使用MD5来比较它。 – duedl0r