php - 如何使用 Guzzle 发布包含文件字段的 json 数据?
问题描述
我正在尝试使用 Guzzle 将以下数据发送到 REST API
{
"documents": {
"id_proprietaire": 28,
"nom_proprietaire": "rash",
"prenom_proprietaire": "rash",
"code_identification": "9LS9PB094MIL9CPL",
"dossier_initial": "path_to_data"
},
"dossier_final": null
}
但我没有找到如何一起使用 multipart 和 json 请求。有人可以帮忙吗?
这就是我所做的,我收到了 404 bad request 错误字段文档是必需的
$httpClient = new Client();
$token = 'Token 7480ea9a692f98ad943e810820ced48aa09ca174';
$response = $httpClient->post('http://127.0.0.1:8000/api_memoire/signed/', [
'headers' => [
'Authorization' => $token,
'Accept' => 'application/json',
],
'multipart' => [
[
'name' => 'documents',
'contents' => json_encode(
[
'id_proprietaire' => $id_demande,
'nom_proprietaire' => $demande->nom,
'prenom_proprietaire' => $demande->prenoms,
'code_identification' => $code,
'dossier_initial' => $document,
]
),
],
[
'name' => 'dossier_final',
'contents' => null,
]
]
]);
解决方案
您可以像这样通过 Guzzle 发送数据:
$httpClient = new Client();
$token = 'Token 7480ea9a692f98ad943e810820ced48aa09ca174';
$response = $httpClient->post('http://127.0.0.1:8000/api_memoire/signed/', [
'headers' => [
'Authorization' => $token,
'Accept' => 'application/json',
],
'form_params' => [
'documents' => json_encode(
[
'id_proprietaire' => $id_demande,
'nom_proprietaire' => $demande->nom,
'prenom_proprietaire' => $demande->prenoms,
'code_identification' => $code,
'dossier_initial' => $document,
]
),
'dossier_final' => null
]
]);
此外,您可以在官方文档中阅读更多详细信息
推荐阅读
- sql - 根据 Postgres 中的审计事件查询最新状态
- artifactory - JFrog CLI - 上传包时无法创建嵌套文件夹
- wcf - 从 WCF 服务返回递归结构
- c# - Sharepoint 新文件上传版本保存为次要版本而不是主要版本
- daml - 运行 DAML 沙箱时发生错误
- flutter - Flutter - 禁用传入通知声音
- javascript - 在Javascript中安全地从对象中提取属性
- c# - 怎么做空控制最有效?
- python - 如何使用两个 pandas 数据框来创建一个新数据框,其中包含来自一个数据框的特定行?
- mule - 想要捕获 Mule 项目名称和配置 XML 名称并插入到 SQL 表中