簡體   English   中英

如何在命令提示符處使用php curl

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM