【问题标题】:How to write output php variable in curl request in Postfields如何在 Postfields 的 curl 请求中写入输出 php 变量
【发布时间】:2021-01-05 16:34:47
【问题描述】:

我正在创建插件,我需要使用 curl 请求获取数据。这是我的代码

$userName = 'admin';
$password = '123456';

$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_URL => "https://apis.tcscourier.com/production/v1/cod/create-order",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 60,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "
{\"userName\":\"<?php $userName ?>\",\"password\":\"<?php $password ?>\",\"costCenterCode\":\"2705\",\"consigneeName\":\"Nabeel Khan\"}
",
CURLOPT_HTTPHEADER => [
"X-IBM-Client-Id: 9b9fc7fa5fc4",
"accept: application/json",
"content-type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

但是 CURLOPT_POSTFIELDS 中的 $username 和 $password 变量不工作或输出。所以我想知道如何在 CURLOPT_POSTFIELDS 中输出变量?

【问题讨论】:

    标签: php json curl


    【解决方案1】:

    只需将一个数组传递给 curl,它就会为您完成繁琐的工作:

    CURLOPT_POSTFIELDS => ['userName' => $username, 'password' => $password, ...],
    

    编辑:我刚刚注意到您尝试发送 JSON 有效负载,然后您必须先对数据进行编码:

    CURLOPT_POSTFIELDS => json_encode(['userName' => $username, 'password' => $password, ...]),
    

    【讨论】:

    • 好的,我用它 $book_packet_array = array( 'userName' => 'printed.mobilee', 'password' => 'qwe1122', 'costCenterCode' => '2705', 'consigneeName' = > '伊克巴尔汗', );和 CURLOPT_POSTFIELDS => $book_packet_array 但是得到这个错误 { "httpCode":"400", "httpMessage":"Bad Request", "moreInformation":"请求的正文,应该是 JSON,是无效的,并且无法解码。对象 { 或数组 [ 的开头是预期的。” }
    • 你看到我的编辑了吗? CURLOPT_POSTFIELDS =&gt; json_encode($book_packet_array) 应该可以工作。
    猜你喜欢
    • 2018-03-11
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2014-05-05
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    相关资源
    最近更新 更多