You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony HttpFoundation转PSR7后PATCH请求体为空问题排查

PATCH请求转PSR7格式后验证失败问题

我发送PATCH请求并转换为PSR7格式后,使用OpenAPI PSR-7消息(HTTP请求/响应)验证器验证时失败,错误提示:
Schema(or data) validation failed: All of the required rules must pass for {}

我怀疑问题出在请求本身或Symfony PSR桥接的使用方式上。

curl请求示例

curl -X PATCH "http://local.domain/api/v1/path/a60360dc-a32e-49a1-bf03-20bf8c2bbbdf" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"property":"value"}'

HttpFoundation转PSR7的代码

$psr17Factory = new \GuzzleHttp\Psr7\HttpFactory();
$psrHttpFactory = new \Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory($psr17Factory, $psr17Factory, $psr17Factory, $psr17Factory);
/** @var \Symfony\Component\HttpFoundation\Request $request */
$psrRequest = $psrHttpFactory->createRequest($request);

调试发现的异常情况

调试时观察到,PsrHttpFactory::createRequest()方法中的请求$body(对应v2.2.0版本代码第70行)内容显示正常,但转换完成后:

  • $psrRequest->getParsedBody()返回空数组
  • $psrRequest->getBody()->getContents()返回空字符串

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 01:53:16