首页 > 解决方案 > 如何使用 REST Assured 发送带有格式错误的查询参数或 URL 中的路径的请求?

问题描述

我必须测试一个休息网络服务,并且正在使用 REST Assured 和 JUnit5 来做到这一点。
部分测试涵盖了服务应如何响应带有错误数据和错误或无效格式的请求。

我希望能够做的事情:

  1. 发送请求http://example.com/some/path?thisiswrong=%(未编码的百分号作为值)
  2. 断言 web 服务按预期响应错误。

简化示例代码:

RestAssured.given()
    .urlEncodingEnabled(false)
    .baseUri("http://example.com")
    .basePath("some/path")
    .queryParams("thisiswrong", "%")
    .get();

IllegalArgumentException由于实际上是由于错误而导致执行失败而未发送请求: java.net.URISyntaxException: Malformed escape pair
这在发送请求之前发生在 REST Assured 内部的某个地方。

我尝试使用实例提供 url,java.net.URL但最终它是相同的。
使用.get(new URI("http://example.com/some/path?uff=%"))and.get(new URL("http://example.com/some/path?uff=%"))都以IllegalArgumentException.

自发送以来,我没有对值进行 url 编码,%或者%25与使用 curl 或 Postman 验证的值不同。

如何在仍使用 REST Assured 的同时发送此请求?

标签: javarest-assured

解决方案


推荐阅读