[英]Hot to send a nested json post request with cURL and PHP
我必须使用 PHP 和 cURL 发送具有以下 json 数据结构的发布请求:
{
"assistanceRequest":
{
"type": "TECHNICAL_DATA",
"deliveryMode": "NORMAL",
"creationDate": "2020-04-09T10:09:00+02:00",
"source": "ATD",
"language": "FR",
"country": "FR"
},
"customer":
{
"code": 123456,
"login": "client@company.com",
"companyName": "Workshop Harris",
"phoneNumber": "+44 123456789",
"email": "workshop@company.com"
},
}
但是我不明白如何创建类似的请求。 我尝试使用以下代码,但我认为它不正确,因为我应该将数据分为两个块:
$post = [
'type' => 'TECHNICAL_DATA',
'deliveryMode' => 'NORMAL',
'creationDate' => '2020-04-16T12:46:33+02:00',
'source' => 'ATD',
'language' => 'FR',
'country' => 'CH',
'code' => '123456',
'login' => 'FR1234561A',
'companyName' => 'Workshop Harris Love',
'phoneNumber' => '+390432561543',
'email' => 'client@client.com', ];
$post_encoded = json_encode($post);
$ch = curl_init('http://222.333.333.444/opafffws/public/api/req');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_encoded);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($post_encoded))
);
$response = curl_exec($ch);
echo "The response 1: <br>" . $response;
echo "<br>";
curl_close($ch);
可以帮助?
<?php
$data = [
'assistanceRequest' => [
'type' => 'TECHNICAL_DATA',
'deliveryMode' => 'NORMAL',
"creationDate" => "2020-04-09T10:09:00+02:00",
"source" => "ATD",
"language" => "FR",
"country" => "FR"
],
'customer' => [
"code" => 123456,
"login" => "client@company.com",
"companyName" => "Workshop Harris",
"phoneNumber" => "+44 123456789",
"email" => "workshop@company.com"
],
];
echo "<pre>"; print_r(json_encode($data));
这是您的结构的示例。 根据需要调整它。 上面代码的 output 将是:
{
"assistanceRequest": {
"type": "TECHNICAL_DATA",
"deliveryMode": "NORMAL",
"creationDate": "2020-04-09T10:09:00+02:00",
"source": "ATD",
"language": "FR",
"country": "FR"
},
"customer": {
"code": 123456,
"login": "client@company.com",
"companyName": "Workshop Harris",
"phoneNumber": "+44 123456789",
"email": "workshop@company.com"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.