You need to enable JavaScript to run this app. Laravel中原生CURL转Http facade调用返回空响应如何解决?
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中原生CURL转Http facade调用返回空响应如何解决?

你当前的写法存在两个核心错误:

  • 手动指定了multipart/form-data请求头但未携带正确的boundary分隔符,服务端无法识别请求体结构,导致参数解析失败
  • Laravel Http Facade不支持直接传入\CurlFile对象,需要使用官方提供的文件上传方法传递附件

正确实现代码

$http = Http::withOptions([
    'debug' => true,
]);

$response = $http
    // 三个参数分别对应:表单字段名、文件资源流、文件原名
    ->attach('xmlFile', fopen($params['file']->getPathName(), 'r'), $params['file']->getClientOriginalName())
    ->post($endpoint, [
        'textData' => $xml->asXML(),
    ]);

dump($response->body());
die;

补充说明

  • 不需要手动设置Content-Type请求头,Laravel会在检测到有文件上传时,自动生成带正确boundary参数的multipart/form-data头
  • 如果需要自定义上传文件的MIME类型,可给attach方法传第四个参数:['Content-Type' => 'text/xml']
  • 请确认$endpoint变量值与原生CURL中的请求地址完全一致,排除请求地址错误的可能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 23:54:04