Laravel API и CURL - PullRequest
       0

Laravel API и CURL

1 голос
/ 13 января 2020

Я создал API, используя Laravel 5. Когда я запускаю запрос PHP curl, он не работает, но если я запускаю API в AJAX, он работает или в Postman. В журналах хранения Laravel ошибок нет, а в журналах Apache2 ошибок нет.

Laravel контроллер:

public function getNo(){
    $NumArr = [];
    $number = testnumber::whereNull('ref')->limit(1)->value('stu');
    $NumArr[] = $number;
    if(!empty($number)){
        return response()->json($NumArr[0],201);
    }else{
        return response()->json("No Found",201);
    }
}

API результат:

479555

PHP файл:

function getNumber(){
    $url = "https://example.com/v2/num";
    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => $url,
        CURLOPT_USERAGENT => 'Request'
    ]);
    $resp = curl_exec($curl);
    return $resp;
}

echo getNo();

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Попробуйте echo getNumber();. Он должен работать.

И в моем локальном окружении я изменил return $resp на echo $resp, и он работает с командой php artisan.

public function handle()
{
    $url = "https://example.com/v2/num";
    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => $url,
        CURLOPT_USERAGENT => 'Request'
    ]);
    $resp = curl_exec($curl);
    echo $resp;  // echo curl content
}
0 голосов
/ 13 января 2020

Добавить эту строку

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE); // remove body
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...