Playwright发送POST请求遇422错误:data参数缺失或值为空
问题分析
你遇到的422错误是因为请求体结构和API要求不匹配。对比Postman的请求体可以看到,API期望整个请求体的最外层是一个包含data属性的对象,但你在Playwright代码里,把type、attributes这些字段直接放在了request.post的data参数中,没有在外层再包裹一层data对象,导致API无法识别到所需的data参数。
解决方案
修改Playwright的请求数据结构,把现有内容嵌套到外层的data属性里,和Postman的请求体结构保持一致:
const testSet = await request.post('https://url/sets.json', { data: { // 新增外层data包裹,和Postman结构对齐 "data": { "type":"sets", "attributes":{ "name":"DuaneDemo", "priority":"highest" }, "instances":{ "test-ids":[obj] } } }, headers: { 'PTToken': 'token' } }) const response = await testSet.json();
补充说明
- 确保
[obj]是符合API要求的数组格式(比如和Postman里的字符串ID数组一致),如果obj是单个值,记得用数组包裹。 - Playwright会自动为JSON格式的POST请求设置
Content-Type: application/json头,如果API有特殊要求,可以在headers里显式指定该字段。
内容的提问来源于stack exchange,提问作者D.Hodges
相关产品推荐
相关产品推荐

