Delphi REST调试器返回错误429太多请求,但浏览器按预期返回JSON

Delphi REST调试器返回错误429太多请求,但浏览器按预期返回JSON,rest,delphi,delphi-10.3-rio,Rest,Delphi,Delphi 10.3 Rio,浏览器调用URL的方式与通过Rest调试器或HTTP组件调用URL的方式有什么区别? 我有一个第三方Web REST API,它每次都在浏览器中工作(即,它会按预期返回JSON),但当我在Delphi REST调试器中使用(获取)相同的URL时,它会返回错误代码429,请求太多。 我不允许在这里发布确切的URL(对不起,老板说了算,但就是这样) 对于其他信息,当我使用NetHTTPClient和NetHTTPRequest组件以及使用DelphiREST组件时,结果是一致的,给出了429错误。

浏览器调用URL的方式与通过Rest调试器或HTTP组件调用URL的方式有什么区别? 我有一个第三方Web REST API,它每次都在浏览器中工作(即,它会按预期返回JSON),但当我在Delphi REST调试器中使用(获取)相同的URL时,它会返回错误代码429,请求太多。 我不允许在这里发布确切的URL(对不起,老板说了算,但就是这样)

对于其他信息,当我使用NetHTTPClient和NetHTTPRequest组件以及使用DelphiREST组件时,结果是一致的,给出了429错误。 我认为将用户代理设置为与我的浏览器相同可能会有所帮助,但可惜没有。我使用Delphi10.3.3

我对休息有点陌生,已经好几天没有通过谷歌搜索找到答案了。任何帮助都将不胜感激。 谢谢 约翰


答案是饼干。当我拒绝所有cookie时,我可以看到@RemyLebeau所述的行为,其中页面处于连续循环中。浏览器发送带有请求头的cookie。我对这一切都不熟悉,所以我将尝试复制浏览器正在做的事情,看看会发生什么。如果我真的被卡住了,我会发布另一个关于饼干的问题。非常感谢所有提供建议的人。非常感谢。我之所以把它放在这里,是因为有人删除了它作为答案。

我猜可能是HTTP重定向陷入了无休止的错误loop@RemyLebeau谢谢,但是为什么在使用浏览器时不会发生这种循环呢?我在NetHTTPClient组件中将最大重定向设置为5?我是否可以模拟浏览器以获取JSON?您可以发送与浏览器完全相同的请求。为此,您需要了解所有涉及的请求,这并不容易。一种可能是安装WireShark(或类似软件),从浏览器和程序中获取所有请求,比较并更新程序以生成相同的请求。@fpiette谢谢。你的意思是我应该发送相同的HTTP请求头吗?如果是这种情况,那么构造报头并随请求一起发送的正确方法是什么?(我可以安装wire shark或fiddler或其他东西,但不知道如何正确构造标头或随请求发送标头。这取决于您使用的组件。我使用的是ICS组件,而不是您提到的组件。我建议您首先分析浏览器请求和您使用的组件之间的差异,然后询问其他问题。)与该确切差异相关的问题(开始一个关于堆栈溢出的新问题).我猜可能是HTTP重定向陷入了无尽的loop@RemyLebeau谢谢,但是为什么在使用浏览器时不会发生这种循环呢?我在NetHTTPClient组件中将Max Redirects设置为5?我是否可以模拟浏览器以获得JSON?您可以发送与b完全相同的请求为此,您需要了解所有涉及的请求,这并不容易。一种可能是安装WireShark(或类似产品)要从浏览器和程序中获取所有请求,请比较并更新程序以生成相同的请求。@fpiette谢谢。您的意思是我应该发送相同的HTTP请求头吗?如果是这样,构造头并随请求一起发送的正确方法是什么?(我可以安装wire shark或fiddler或其他东西,但不知道如何正确构造标头或随请求发送标头。这取决于您使用的组件。我使用的是ICS组件,而不是您提到的组件。我建议您首先分析浏览器请求和您使用的组件之间的差异,然后询问其他问题。)stion与这个确切的差异有关(开始一个关于堆栈溢出的新问题)。