2015-01-29 8 views
0

У меня проблема с командной строкой. Я должен использовать -d '{"name": "YourCompanyName", "time_zone":"Pacific Time (US & Canada)"}' в php curl.I не понимаю, как это сделать. Я думал, что это означает данные в php curl, поэтому я использовал это CURLOPT_POSTFIELDS. Bu еще я получаю эту ошибкуКак использовать php curl вместо командной строки

«ошибка»: «недостающий„имя“обязательный параметр»

$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")); 
+0

Пожалуйста, разместите свой код, чтобы лучше объяснить вашу проблему. – Ritesh

+0

$ api_url = 'https://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, массив ("Авторизация: токен-токен = \" {$ api_key} \ "", "Content-Type: application/json")); –

ответ

0

Вы должны вызвать json_encode на $fields перед его отправкой в ​​теле POST. Вместе с фиксацией неопределенную $fields_string, это будет выглядеть так:

$fields_string = json_encode($fields); 
+0

спасибо, что я решил проблему –

+0

было бы неплохо, если бы вы могли принять ответ, тогда –

0

Я думаю, что данные должны быть в формате 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")); 
0

Прежде всего вы передаете неправильные переменный в коде:

curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

Где $fields_string не определены.

Смежные вопросы