java - 如何使用 REST Assured 发送带有格式错误的查询参数或 URL 中的路径的请求?
问题描述
我必须测试一个休息网络服务,并且正在使用 REST Assured 和 JUnit5 来做到这一点。
部分测试涵盖了服务应如何响应带有错误数据和错误或无效格式的请求。
我希望能够做的事情:
- 发送请求
http://example.com/some/path?thisiswrong=%
(未编码的百分号作为值) - 断言 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 的同时发送此请求?
解决方案
推荐阅读
- java - DialogFragment 正在将 XML 扩展到全屏?
- wpf - 如何在 WPF 中设置样式和样式触发器
- android - 膨胀类 android.support.v4.widget.SwipeRefreshLayout
- mpi - 计算一个进程中的一个值,发送给根进程mpi
- google-cloud-bigtable - 是否可以针对本地 BigTable 模拟器实例运行 BigQuery 命令行界面 (cli)?
- laravel - Vue js 无法显示数据
- matlab - matlab中较小的表面如何平方
- c++11 - 如何使用 QPushButton 和 OpenCV::imwrite 保存在 QGraphicsView 上加载的增量图像
- html - 无法获取 HTML 选择表单以显示用户先前保存到数据库的选定 home_state
- wolfram-mathematica - 在列表中的点处评估定义的函数