json - 赛普拉斯登录 REST 端点未经授权,邮递员工作 - 上传 JSON 文件
问题描述
我们有一个带有接收数据的传入 REST 端点的 REST 服务。它没有 Web 界面(Swagger 左右),只有 API。使用 Postman,我可以向其 POST 一个 JSON 文件(响应代码为 202),然后从另一个端点读取上传的数据。
当我想使用赛普拉斯登录到同一个端点以从夹具文件夹上传 JSON 文件(与 Postman 请求中的正文相同)时,我得到响应代码 401——未经授权。我感觉 cypress 请求是错误的,因为当我使用 cypress POST 时服务的日志文件没有写消息,但是当我使用 Postman POST 时它会写消息。
第一个问题:我在柏树请求中做错了什么?
第二个问题:身份验证成功后,如何将 JSON 文件的内容发布/上传/推送到该端点?因为我没有网页可以交互,所以我不能使用点击按钮功能。该文档主要处理解释 JSON 响应而不是发送它。
我的柏树代码:
it('logs in to connector through REST API', () => {
cy.request({
method: 'POST',
url: 'localhost:8095/connector/demands/v1/demandData',
failOnStatusCode:false,
form: true,
body: {
Username: 'user',
Password: 'pass',
}
})
})
import my-request from '../fixtures/my-request.json'
it('loads the JSON file', () => {
cy.fixture('my-request.json')
})
要上传的 JSON 文件的结构并不太简单,这里有一个简化的版本:
{
"@metadata": {
"context": "{{A}}"
},
"pool": "{{B}}",
"action": "NEW",
"Type": "ANNOUNCEMENT",
"ON": "Order123",
"PON": "PO123",
"SNN": "SN123",
"direction": "OUT",
"mode": 3,
"pack": [
{
"out": {
"outKey": "OUT14",
"outQuantity": "3",
"dimension": {
"length": "303",
"width": "33",
"height": "903",
"unit": "mm"
},
"layers": "3",
"weight": "3000",
"weightUnit": "grm",
"in": [
{
"inKey": "IN12",
"inQuantity": "3",
"article": {
"articleKey": "article3",
"quantity": "300",
"PON": "Art_PO300",
"SNN": "Art_SN300"
}
}
]
},
"p1": "pack3",
"p2": "pack4",
"store": true
},
{
"out": {
"outKey": "OUT23",
"outQuantity": "5",
"dimension": {
"length": "505",
"width": "55",
"height": "905",
"unit": "mm"
},
"layers": "5",
"weight": "5000",
"weightUnit": "grm",
"in": [
{
"inKey": "IN19",
"inQuantity": "5",
"article": {
"articleKey": "article5",
"quantity": "500",
"PON": "Art_PO500",
"SNN": "Art_SN500"
}
}
]
},
"p1": "pack5",
"p2": "pack5",
"store": true
}
]
}
解决方案
找到解决方案。不能给出“form: true”,因为这会覆盖内容类型。
推荐阅读
- javascript - JQuery Ajax 文件 Ypload 导致完整页面重新加载
- mule - 在 mule 流中按顺序从 Jms 消费消息
- hibernate - 休眠搜索总是返回一个空列表
- android - 无法在 Android 模拟器上运行 Flutter App
- django - Django 模板显示不同的模型字段
- arrays - Julia:变异类型稳定数组的最佳实践
- cassandra - Cassandra 备份和恢复到另一个集群
- javascript - 删除 nodeJS 应用程序中的所有组和子项
- python - 在给定字符串条件的情况下删除熊猫中的数据
- powershell - 将用户输入添加到 Select-String 命令