简体   繁体   English

热发送嵌套 json post 请求与 cURL 和 PHP

[英]Hot to send a nested json post request with cURL and PHP

I must send a post request with the following json data structure using PHP and cURL:我必须使用 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"
        },
}

However I don't understand how to create a similar request.但是我不明白如何创建类似的请求。 I tried with the following code but I suppose it's not correct because I should group the data in two blocks:我尝试使用以下代码,但我认为它不正确,因为我应该将数据分为两个块:

    $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);

Can help?可以帮助?

<?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));

This is an example for your structure.这是您的结构的示例。 Tweak it as you need.根据需要调整它。 The output of the above code will be:上面代码的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM