[英]How to use php curl in place of command prompt
我在命令行有問題。 我必須在php curl.I
使用-d '{"name": "YourCompanyName", "time_zone":"Pacific Time (US & Canada)"}'
。 php curl.I
不知道該怎么做。 我認為這意味着php curl中的數據,所以我使用了CURLOPT_POSTFIELDS
。 Bu仍然我收到此錯誤
“錯誤”:“缺少必需的參數'名稱'”
$api_url = 'api.callrail.com/v1/companies.json';;
$fields = array('name'=>'BobsAutoShop','time_zone'=>'Pasific Time (US & Canada)');
$ch = curl_init($api_url);
//print_r(curl_getinfo($ch)) ;
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
//curl_setopt($ch,CURLOPT_POST, $fields_string);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Token token=\"{$api_key}\"","Content-Type: application/json"));
您必須先在$fields
上調用json_encode
,然后才能將其發送到POST正文中。 連同修復未定義的$fields_string
,這看起來像:
$fields_string = json_encode($fields);
我認為數據應采用json格式,因此請按以下方式轉換json中的發布數據。
$api_url = 'api.callrail.com/v1/companies.json';
$fields = json_encode(array('name'=>'BobsAutoShop','time_zone'=>'Pasific Time (US & Canada)'));
$ch = curl_init($api_url); //print_r(curl_getinfo($ch)) ;
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Token token=\"{$api_key}\"","Content-Type: application/json"));
首先,您在代碼中傳遞了錯誤的變量:
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
沒有定義$fields_string
地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.