Ответ API не отображается с curl в php - PullRequest
0 голосов
/ 02 мая 2019

Я хочу получить ответ Api (созданный в nodejs) на веб-сайте, используя Php, поэтому для этого я использую curl, но он не работает, я попытался с помощью следующего кода, но не работает для меня (показывает пустую страницу), где я нахожусьнеправильно ?Вот мой код

$post = ['email'=> "example@xyz.com",'password'=> "testing"];
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL,'http://35.154.149.228:8000/api/admin/login');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
  $response = curl_exec($ch);
  $result = json_decode($response); 
  print_R($result);

Ответы [ 3 ]

0 голосов
/ 02 мая 2019

Изменение

$result = json_decode($response);

Для

$result = json_decode($response, true);

Тогда

echo '<pre>';
print_r($result);

Ответ: -

Array
(
 [statusCode] => 401
 [error] => Unauthorized
 [message] => Invalid username or password
 [responseType] => INVALID_USER_PASS
)
0 голосов
/ 02 мая 2019

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

используйте их в верхней части файла, сразу после тегов php

ini_set("display_errors", "On");
error_reporting(E_ALL);

Также попробуйте распечататьнеобработанный ответ перед json_decoding, это потому, что если полученный вами ответ недействителен, то json ничего не напечатает после его декодирования.

Используйте это

print_r("The response is: " . $response);

В итоге ваш код долженвыглядит как

ini_set("display_errors", "On");
error_reporting(E_ALL);

$post = ['email'=> "example@xyz.com",'password'=> "testing"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://35.154.149.228:8000/api/admin/login');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
$response = curl_exec($ch);
//Printing the original response before trying to decode it
//$result = json_decode($response); 

print_r("The response from the server before decoding is: " . $response);

Дайте нам знать, какой точный ответ вы получите от этого

0 голосов
/ 02 мая 2019

изменить массив сообщений


  $post = array('email'=> "example@xyz.com",'password'=> "testing");
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL,'http://35.154.149.228:8000/api/admin/login');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
  $response = curl_exec($ch);
  $result = json_decode($response); 
  print_r($result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...