我正在尝试创建一个变量并将其放入数组中。 像这样:
$ch = curl_init('https://apps.net-results.com/api/v2/rpc/server.php?Controller=Contact');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, 'user:pass');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,
json_encode(
array(
'id' => uniqid(),
'method' => 'getMultiple',
'jsonrpc' => '2.0',
'params' => array(
'offset' => 0,
'limit' => 50, // 10, 25, or 50
'order_by' => 'contact_email_address', //'contact_email_address' or 'contact_id'
'order_dir' => 'ASC', //'ASC' or 'DESC'
)
)
)
);
$strResponse = curl_exec($ch);
我不确定这是否可能。 我尝试过做不同的事情,例如创建一个类,并将函数放在数组中的类中,但它不起作用。 谁能给我应该尝试的正确语法?
如果您通过 post 传递参数,您应该使用 http_build_query() 并且您可以将其作为 CURL post 字段传递。
您应该设置:
$array = [
'id' => uniqid(),
'method' => 'getContactActivity',
'jsonrpc' => '2.0'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://example.site");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($array));
curl_exec($ch);
curl_close($ch);
不要拨打
json_encode()
。 CURLOPT_POSTFIELDS
选项的值应该是关联数组或 URL 编码格式的字符串。如果您使用数组,它会自动为您编码。