- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在通过 postman 或 Java 库“io.restassured”发送 API 请求时遇到问题。当我在 UI 上执行相同的操作时,请求返回正确的响应,但是当我通过 postman 或 java 代码尝试相同的操作时,我得到:
401 Bad request
Your browser sent an invalid request.
java代码
public static void main(String[] args) {
String requestUrl = "exampleBaseUrl/app/reports/api/rest/v1/graphs?context=shipper&reports_type=freights";
Response response = RestAssured.given().relaxedHTTPSValidation().header("x-csrf-token", "18ea65e740eb0ddddadf0ef435d92564").
when().
get(requestUrl);
}
我认为身份验证有问题,因为在开发工具中我可以看到对 CSRF_token 的 Get 请求,它看起来像这样:
token 的端点:
/login?get_csrf_token
对于这个请求,我得到以下响应:
{"csrf_token":"18ea65e740eb0ddddadf0ef435d92564"}
我不知道如何解决这个问题,我还尝试通过向 token 的端点发送 get 请求来通过 java 代码获取 token /login?get_csrf_token
这个得到了我的 HTML 响应,其中输入了空的用户名和密码。
最佳答案
错误 401 表示您的请求未经授权。
对于授权,通常在登录时会给您一个 token ,您必须将其保存在缓存/本地内存中,并且每当您与服务器通信时,您都必须将其添加到请求 header 中(供您自己介绍)到服务器)
在您的情况下,您似乎可以在登录后从 /login?get_csrf_token
获取 token 。请注意,您不需要登录服务授权。
现在,从服务器获取 token 后,如何将其添加为请求 header ? See REST Assured Documentation
关于java - 放心测试-API请求401错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52595133/
例如,我们的响应中有 JSON: {"data":[{"id":1,"active":false},{"id":2,"active":true}]} 通过使用 expect().body("data"
我有这个 json 对象 { "type" : "employee", "columns" : [ { "id" : 1,
当我通过 response.getBody().asString() 将 JSON 主体转换为字符串时,它会在 JSON 响应中丢失换行符。如何保留它们并在控制台输出中显示? 如果我使用简单的 GET
从以下 json 响应中,我正在读取元素 - packageId public static void main(String[] args) { String jsonString
我知道什么是放心,它用于什么目的, cucumber 也是如此。 但问题是我们可以使用 Rest 保证器实现的目标,就像我们可以使用 Cucumber 进行测试一样。 请放心,只需调用 Web 服务并
示例测试: @Test public void shouldGetRoutesList() { Response response = given()
如何在其余测试中将 Accept 和 contentType 设置为 json 项目范围? given() .accept(ContentType.JSON)
我有以下代码可以测试我的 RESTful API: given().baseUri("http://...").get("/categories/all") .then() .body
如果响应 json 是一个空列表,我如何检查 rest-assured (2.4.0)? 鉴于响应 [](带有 header content-type=application/json),我尝试了:
我有用于按名称查找用户的 REST,对于某些搜索词,它会返回在名字或姓氏中包含该词的用户。 GET /search/joe 返回 json 数组: [ {"id": 1, "firstName":
我是 RestAssured api 测试的新手,在运行我的基本代码时遇到异常。我已经添加了所有必需的 jar 并尝试了在线提供的所有建议,但仍然无法找到解决方案。请有人帮助我。提前致谢。 代码 im
我想用 Rest Assured 测试我的休息服务,但当服务返回负零值时我的测试失败。 放心测试: String methodName="multiply"; float[] oper
我正在使用 RestAssured 测试 API。 我调用的方法正在使用下一个注释: @PreAuthorize("hasAnyRole('ROLE1', 'ROLE2', 'ROLE3')") 我的
我需要序列化依赖于 JAXB 注释的 POJO 对象。我可以使用 Jackson 轻松完成此操作(添加 JaxbAnnotationIntrospector)。无需任何显式编码就可以吗? 如果能够像这
这是我的 JSON: [ { "id": 9741962, "name": "getName", "isActive": true }, { "id": 1,
我正在发布简单的数据,例如 { "title" : "test Title" } 到(顺其自然)/posts uri,例如类似 RestAssured.baseURI = "http://localh
我是新人,放心。我已尝试使用以下代码来获取响应 @Test public void getData() throws IOException { Response respo
我正在尝试在java上实现一种方法,确保找到查询JSON文件的值。为此,我使用 io.restassured.path.json.JsonPath 库中的 JSONPath 的 findAll 方法来
我正在尝试测试我正在做的一个小型休息服务,以使用放心来学习。我听从了这个人视频的建议:https://www.youtube.com/watch?v=yDdBOspPp_c 但是在实现该帖子时说:无法
我需要使用 REST Assured Jsonpath 根据匹配条件获取计数值 我尝试了以下方法,但它不起作用: response().jsonPath().getString("{it.B == '
我是一名优秀的程序员,十分优秀!