我有一个基本搜索,它给出了 html 文档的结果列表。您可以单击这些结果并转到“view.aspx?id=xxxx”页面以查看这些 html 文档。
结果页面上的一个功能是“将所有结果编译为 PDF”,实质上是将搜索中的每个结果的“view.aspx?id=xxxx”页面的 HTML 下载为 PDF。
因此我有一个循环(为简单起见,我用 id 硬编码了一个循环):
Document doc = pdfConverter.GetPdfDocumentObjectFromHtmlString(
getHtml("{...}View/Default.aspx?id=16480")
);
int id = 16481;
while (id <= 16972)
{
doc.AppendDocument(
pdfConverter.GetPdfDocumentObjectFromHtmlString(
getHtml("{...}View/Default.aspx?id=" + id)
)
);
id++;
Thread.Sleep(250);
}
如何在每个请求之间适当地休息一下?如果我不破坏网络服务器认为我正在锤击它并终止我的会话等。我已经看到了关于不在网页代码隐藏中使用 Thread.Sleep 的大量堆栈溢出帖子,但似乎找不到任何在那些给出替代方案的职位中。
(请注意,这是一个内部认证的站点,如果您已登录,则可以访问所有 ID,ID 是数据的组合,而不是主键,因此我认为我不必担心显而易见的问题直接对象引用)