2017-02-21 5 views
0

Я борюсь за использование cURL в PHP. Я не уверен, что мне нужно сделать, чтобы «перевести» это:«Перевести» cURL на PHP

curl -X POST -u "{username}:{password}" --header "Content-Type: application/json" --data-binary @profile.json "https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2016-10-20&consumption_preferences=true&raw_scores=true" 

в PHP для его выполнения.

Это все, что я получил до сих пор, но я чувствую, что я даже не близко:

$url2 = 'https://watson-api-explorer.mybluemix.net/personality-insights/api/v3/profile?raw_scores=false&csv_headers=false&consumption_preferences=true&version=2017-02-01'; 
$request_headers = array(); 
$request_headers[] = 'Accept: application/json'; 
$request_headers[] = 'Content-Type: text/plain'; 
$request_headers[] = 'Content-Language: en'; 
$request_headers[] = 'Accept-Language: en'; 

$ch2 = curl_init($url2); 
curl_setopt($ch2, CURLOPT_POST, 1); 
curl_setopt($ch2, CURLOPT_POSTFIELDS, $myvars2); 
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch2, CURLOPT_HEADER, $request_headers); 
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); 
$response2 = curl_exec($ch2); 
var_dump($response2); 
+1

На самом деле вы довольно близки. Вам просто не хватает части аутентификации из того, что я вижу. Какой вывод вы получаете из вышеупомянутого сценария? – JakeParis

+0

Вот и я думаю, что застрял. Я не знаю, что такое -u, и как «переводить» это на PHP. Я выяснил заголовки, но это все – jonmrich

ответ

3

Похоже, вы просто не хватает кусок аутентификации:

curl_setopt($ch2, CURLOPT_USERPWD, "yourUsername:yourPassword"); 

Проверьте manual. Кроме того, вы можете сделать это таким образом, что может быть немного проще:

curl_setopt_array($ch2, array(
    CURLOPT_POST => 1, 
    CURLOPT_POSTFIELDS => $myvars2, 
    CURLOPT_FOLLOWLOCATION => 1, 
    CURLOPT_HEADER => $request_headers, 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_USERPWD => 'yourUsername:yourPassword' 
); 
+0

Супер полезно ... спасибо. Я аутентифицирован сейчас, но я должен передавать данные некорректно. Это первый бит того, что мне нужно: 'curl -X POST --header 'Content-Type: text/plain' --header 'Accept: application/json' --header 'Content-Language: en' --header 'Accept-Language: en' -d 'BUNCH OF PLAIN TEXT HERE' 'У меня есть все, кроме части '-d'. Что это за «команда»? – jonmrich

+0

Вот ваш -d: https://curl.haxx.se/docs/manpage.html#-d – JakeParis

+0

@jonmrich, что вам нужно отправить через этот параметр? – JakeParis

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

  • Нет связанных вопросов^_^