Bash CURL для php - PullRequest
       1

Bash CURL для php

0 голосов
/ 13 сентября 2018

У меня возникли проблемы с переводом bash curl в PHP.Смотри, это не работает для меня.Я не знаю, как проверить это правильный код.

curl -X "POST" "https://someurl.com/oauth/token" \
 -H "Authorization: Basic eyJ...V6w" \
 --data-urlencode "grant_type=password" \
 --data-urlencode "scope=api" \
 --data-urlencode "username=user@example.uri" \
 --data-urlencode "password=p...d"

Я пробовал с этим:

<code>$query1 = urlencode("grant_type=password");
$query2 = urlencode("scope=api");
$query3 = urlencode("username=login@mail.com");
$query4 = urlencode("password=loginpass");


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://someurl.com/oauth/token&".$query1."&".$query2."&".$query3."&".$query4."");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Authorization: Basic ZnVydGFzdGljLTZhMTAzNTE4Y2YyOGNhNmI3OTNhYzljNmJjM";

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
echo "
"; print_r ($ result); echo""; if (curl_errno ($ ch)) {echo 'Error:'. curl_error ($ ch);} curl_close ($ ch);

1 Ответ

0 голосов
/ 13 сентября 2018

Вы можете использовать этот способ. Имейте в виду, что вы публикуете параметры. Таким образом, строка запроса не должна быть присоединена к URL-адресу, а отправлена ​​в качестве параметров публикации

$data = array(
    'grant_type' => 'password',
    'scope' => 'api',
    'username' => 'user@example.uri',
    'password' => 'p...d'
);


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://someurl.com/oauth/token");

$headers = array();
$headers[] = "Authorization: Basic ZnVydGFzdGljLTZhMTAzNTE4Y2YyOGNhNmI3OTNhYzljNmJjM";

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS,
    http_build_query($data));


curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);


curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 0);


echo $response = curl_exec($ch);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...