我有一个使用RestAssured
进行测试的端点。在浏览器/邮递员中打开该端点时,该端点工作正常。但是,在尝试使用RestAssured
进行测试时,
我得到Operation Timed Out Error
。
我必须连接到代理才能使该端点在浏览器中正常工作。放心使用相同的代理服务器。
下面的示例代码:
given().proxy("My_Proxy_URL_HERE",8080).when().get("My_API_URL_Here").then().log().all();
我得到的答复是
“操作超时”,状态码为503。
我需要您的建议,可能是什么问题,如何调试等。任何建议均应感谢。预先感谢。
答案 0 :(得分:1)
此行为可能有很多原因:
地址是错误的,并且由于存在一些负载均衡器/代理,可以将其配置为等待一段时间,然后以503状态代码进行响应。 请注意,503不是“请求超时”,而是“服务不可用”。
请求url很好,但是请求缺少一些标头,因此负载均衡器/代理无法将请求路由到所需的服务器。
如何检查?在这种情况下,可以使用一些方便的工具:
检查负载平衡器/代理甚至服务器的访问日志(如果可能)-并查看请求。
如果没有帮助,请尝试比较来自保证保证请求和常规请求的请求。例如,您可以使用Burp之类的工具,还有其他工具,或者甚至可以自己动手。
这个想法很简单: 在本地计算机的某个端口上启动“拦截器”(例如9999)
配置拦截器以将所有请求转发到您选择的代理(由URL标识-My_Proxy_URL_HERE和端口8080)。 现在,请放心,必须调用localhost:9999,此工具将拦截请求。您将能够检查其内容-标头,正文,http方法-所有内容。 对浏览器请求进行同样的操作并进行比较。