繁体   English   中英

CURLOPT_POSTFIELDS格式

[英]CURLOPT_POSTFIELDS format

我试图将一个json字符串传递给curlopt_postfield。

curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);

我有一个工作的硬编码示例。 但是,我无法使其动态。

$test = "84560";
$data = "{\"id\":\"" .$test. "\"}";
$data2 = "{\"id\":\"84560\"}";
curl_setopt($ch, CURLOPT_POSTFIELDS, $data2);

为什么$ data2起作用而$ data失败? 我已经尝试过json编码,utf8编码以及将引号转义的许多变体都无济于事。 我想念什么? 我没有得到一个错误,仅仅是一个NULL响应。

这是完整的代码。 仍然无法使其正常工作。 我尝试了所有发现的任何其他建议。

$test = "84560";
$data = "{\"id\":\"" .$test. "\"}";
$data2 = "{\"id\":\"84560\"}";

$result2 = getJson("results.json?", $data2);

function getJson($endpoint, $postfields) 
{
    $URL = "https://app.mobilecause.com/api/v2/reports/". $endpoint;

        $ch = curl_init();
        $headers = [];
        $headers[] = "Authorization: Token token=\"[token goes here]\"";
        $headers[] = "Accept: application/json";
        $headers[] = "Content-Type: application/json";
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        curl_setopt($ch, CURLOPT_URL, $URL);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

        $result = curl_exec($ch);
        if (curl_errno($ch)) 
        {
            echo 'Error:' . curl_error($ch);
        }
        curl_close ($ch);;
        return $result;
    }

您应该简单地尝试:

<?php
$data = array('id' => 84560);
$json = json_encode($data);
echo $json; // Will print { id: 84560 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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