我需要从我们的合作伙伴网站(德国研究机构“Gesellschaft für Konsumforschung” - https://startrack.gfkrt.com/)自动抓取一些数据。
他们不想为我们创建干净的 api,因为“网站是大约十年前写的,非常非常复杂,大约十年前原来的程序员也被解雇了,新程序员非常害怕破坏整个事情,因为更改/添加任何东西”(C)。他们也不想提供消息来源,因为“这是他们的知识产权”。
在 Telerik 控件的帮助下,使用 ASP.NET Web 窗体使站点变白。
因此,使用 Fiddler 我观察了浏览器发送到服务器的标题和表单数据。然后使用标准 HTTPWebRequest 类,我编写了发送相同标题和表单数据的应用程序。它工作得很好。但是在调试时,我使用 Fiddler 来观看我的应用程序通过 SSL 隧道发送/检索的数据。
但是当我停止使用 Fiddler 时,我的应用程序完全崩溃了——当没有它运行时,站点总是返回显示“发生严重错误”的页面(当 5xx 错误发生时不是标准的 IIS 响应,而只是带有该文本的站点的标准页面) .
当 Fiddler 运行我的应用程序正常时 - 站点没有返回错误,但当没有时 - 出现“站点严重错误”。我用查尔斯尝试过同样的事情——同样的结果——当它在后台运行时一切正常,当没有错误时。在浏览器中一切都很好,即使没有 Fiddler/Charles 运行。
那么没有任何东西的 HTTPWebRequest 和 Fiddler/Charles 下的 HTTPWebRequest 有什么不同呢?我可以在我的代码中更改什么,这将使它们的行为相同?